この共有関数を使用して、基本的な乱数の生成を行っています。
Public Shared Function RandomNumber(ByVal MaxNumber As Integer, Optional ByVal MinNumber As Integer = 0) As Integer
'initialize random number generator
Dim r As New Random(Date.Now.Ticks And &HFFFF)
If MinNumber > MaxNumber Then
Dim t As Integer = MinNumber
MinNumber = MaxNumber
MaxNumber = t
End If
Return r.Next(MinNumber, MaxNumber)
End Function
このように呼び出されます:dim x as integer = Random(2100000000)
非常に単純で、シード値はMSの例から直接得られます。
問題は次のとおりです。番号が重複することがありますが、通常は少なくとも5分または10分間隔で作成されます。関数を1秒に複数回呼び出しているのか、ミリ秒に呼び出しているのかがわかります。これは、シードを「壊す」ためです。しかし、これらは長期間にわたって現れています。他に何がこれを引き起こしている可能性がありますか?