С любым генератором случайных чисел вы должны заполнить его вход .Для случайного числа на платформе Windows лучше всего использовать CryptGenRandom()
.Имейте в виду, что время () само по себе очень плохое зерно, потому что часто злоумышленник знает время.
<DllImport("coredll.dll")> _
Public Shared Function CryptGenRandom( _
ByVal hProv As IntPtr, ByVal dwLen As Integer, _
ByVal pbBuffer() As Byte) As Boolean
End Function