Const As Integer mod_ = 1e9 Dim Shared As Integer state(0 To 55) Dim Shared As Integer sk = 0, sj = 0 Declare Function subrand() As Integer Sub subrandSeed (p1 As Integer) Dim As Integer i, j, p2 state(0) = p1 Mod mod_ p2 = 1 j = 21 For i = 1 To 54 If j >= 55 Then j -= 55 state(j) = p2 p2 = p1 - p2 If p2 < 0 Then p2 += mod_ p1 = state(j) j += 21 Next sk = 0 sj = 24 For i = 1 To 165 subrand() Next End Sub Function subrand() As Integer If sk = sj Then subrandSeed(0) Else If sk = 0 Then sk = 54 Else sk -= 1 If sj = 0 Then sj = 54 Else sj -= 1 Dim As Integer x = state(sk) - state(sj) If x < 0 Then x += mod_ state(sk) = x Return x End If End Function subrandSeed(292929) For i As Integer = 0 To 9 Print Using "r[###] = &"; i+220; subrand() Next i Sleep