Ciao.
Io mi ero fatto una funzione apposta:
codice:
Private Function NumeroNonPresente(Vettore() As Integer, ByVal vMin As Integer, ByVal vMax As Integer) As Integer
Dim Cont As Integer
Dim Uguale As Boolean
Do
Uguale = False
NumeroNonPresente = NumeroEstratto(vMin, vMax)
For Cont = 0 To UBound(Vettore) - 1
If NumeroNonPresente = Vettore(Cont) Then
Uguale = True
Exit For
End If
Next Cont
Loop Until Uguale = False
End Function
Private Function NumeroEstratto(vMin As Integer, vMax As Integer) As Integer
Randomize Timer
NumeroEstratto = Int((vMax - vMin + 1) * Rnd + vMin)
End Function
La funzione permette l'estrazione di un numero casuale, compreso fra vMin e vMax passati come parametri, che non sia già presente fra quelli estratti in precedenza e salvati nell'array Vettore.
Puoi quindi usarla in questo modo:
codice:
Dim Numeri() As Integer
Dim Cont As Integer
ReDim Numeri(19)
For Cont = 0 To 19
Numeri(Cont) = NumeroNonPresente(Numeri, 0, 19)
Next Cont
For Cont = 0 To 19
MsgBox Numeri(Cont)
Next Cont
In questo caso estrai 20 numeri il cui valore rimane compreso fra 0 e 19