Function PredictSortedSet(seedText As String, lineIndex As Integer) As Variant
Dim i As Integer, j As Integer, tmp As Integer
Dim seedVal As Long
Dim numbers(1 To 43) As Integer
Dim selected(1 To 6) As Integer
Dim result(1 To 1, 1 To 6) As Integer
‘ シード生成
seedVal = 0
For i = 1 To Len(seedText)
seedVal = seedVal + Asc(Mid(seedText, i, 1)) * i
Next i
seedVal = seedVal + lineIndex * 1000
Randomize seedVal
‘ 1〜43の数字を配列に格納
For i = 1 To 43
numbers(i) = i
Next i
‘ 数字をシャッフル
For i = 43 To 2 Step -1
j = Int(Rnd() * i) + 1
tmp = numbers(i)
numbers(i) = numbers(j)
numbers(j) = tmp
Next i
‘ シャッフルされた数字の先頭6個を選択
For i = 1 To 6
selected(i) = numbers(i)
Next i
‘ 昇順に並び替え(バブルソート)
For i = 1 To 5
For j = i + 1 To 6
If selected(i) > selected(j) Then
tmp = selected(i)
selected(i) = selected(j)
selected(j) = tmp
End If
Next j
Next i
‘ 結果を返す(横並びで出力)
For i = 1 To 6
result(1, i) = selected(i)
Next i
PredictSortedSet = result
End Function