Originariamente inviato da Samuele_70
Potresti utilizzare il classico algoritmo del gioco della tombola ( visto che siamo nel periodo giusto ):

1) Inserisci tutte le combinazioni possibili in un array (meglio se usi una lista)
2) Tramite funzione rand()*grandezza_array 'peschi' nell'array il valore
3) Cancelli dalla lista/array il valore usato e decrementi 'grandezza_array'
4) Se 'grandezza_array'>0 torni al unto 2.

Può andare ?
La tecnica puo' essere accettabile per un numero di elementi n intorno alla decina , ma troppo dispendioso in termini computazionali per un numero di elementi sufficientemente grande . Le permutazioni di n elementi sono n ! . Per cui avremo : un tempo Tg di generazione più un tempo Tv di verifica. Usando una lista (o un array) il tempo di verifica Tv sarà proporzionale al numero degli elementi della lista .
P.S. Buon Natale a tutti