Quote Originariamente inviata da kerberos5 Visualizza il messaggio
Navigando qui e li ho trovato la soluzione non era così banale! la funzione che segue sfrutta il principio del mazzo di carte!

codice:
 Public Function rndNumber() As Integer
        Const N As Integer = 23 'ultimo numero generabile, intervallo (0...N)
        Static X(0 To N) As Integer 'il vettore con i numeri casuali
        Static pr As Integer 'l'indice progressivo del numero da restituire
        Dim i As Integer, j As Integer, s As Integer, v As Integer

        If pr = 0 Then
            'e' la prima chiamata o abbiamo esaurito i numeri: inizializziamo!
            For i = 1 To N
                X(i) = i 'memorizziamo in X() i numeri, per ora in ordine...
            Next
            Randomize()
            For v = 1 To 3 'numero di "smazzate" per mischiare per bene
                For i = 1 To N 'il numero d'ordine i lo scambiamo...
                    j = Int(Rnd() * (N + 1)) ' con quello j, scelto a caso
                    s = X(i)
                    X(i) = X(j)
                    X(j) = s
                Next 'per tutti i numeri nel "mazzo"
            Next 'ripetiamo per il numero di "smazzate"
            'OK, ora i numeri sono in ordine "casuale"
            rndNumber = X(0) 'restituiamo il primo della lista
            pr = 1 'l'indice del prossimo da restituire
        Else
            'ci sono ancora numeri disponibili, semplicemente restituiamo quello d'indice pr
            rndNumber = X(pr)
            pr = pr + 1 'aggiorniamo l'indice
            If pr > N Then
                'se abbiamo restituito l'ultimo, resettiamo pr per la successiva re-inizializzazione
                pr = 0
            End If
        End If
    End Function
P.S. Ora se volessi applicare la randomizzazione di 1 colore a delle label? mi spiego ho 20 label e randomicamente solo ad esempio 5 di queste devono colorarsi diversamente rispetto alle altre.... è fattibile?

grazie
Vabbè.. mazzo di carte o numeri della tombola, il principio è lo stesso...
Tu puoi mescolare le carte e poi "estrarle" in ordine man mano oppure "estrarre" direttamente le carte in modo ramdom, avendo l'accortezza di togliere però la carta appena estratta. Questo modus operandi è migliore perché si applica anche ad altro, non solo ai numeri. Puoi estrarre a caso da un array di lettere o anche di colori usando lo stesso codice.
Per i colori, chiedi se è fattibile.. certo. Qual'è la difficoltà? Selezionare le label? Impostare i colori? I colori random si possono ottenere banalmente estraendo 3 numeri compresi tra 0 e 255, che poi li usi per comporre un colore RGB... Per cambiare il colore, vedi backgroundcolor