az 文字を含むように文字列を変更します。
Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
ループを変更して、ランダムな数の文字を作成します。
Dim cnt As Integer = r.Next(15, 33)
For i As Integer = 1 To cnt
メソッドの上限Next
は排他的であるためNext(15, 33)
、15 ~ 32 の範囲の値が得られることに注意してください。
文字列の長さを使用して文字を選択します。
Dim idx As Integer = r.Next(0, s.Length)
単一のランダム文字列ではなくランダム文字列を作成するため、関数内に乱数ジェネレーターを作成しないでください。あまりにも近い時間に関数を 2 回呼び出すと、ランダム ジェネレーターがシステム クロックを使用してシードされるため、同じランダム文字列になってしまいます。したがって、乱数発生器を関数に送信する必要があります。
Function RandomString(r As Random)
つまり、全体として:
Function RandomString(r As Random)
Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
Dim sb As New StringBuilder
Dim cnt As Integer = r.Next(15, 33)
For i As Integer = 1 To cnt
Dim idx As Integer = r.Next(0, s.Length)
sb.Append(s.Substring(idx, 1))
Next
return sb.ToString()
End Function
使用例:
Dim r As New Random
Dim strings As New List<string>()
For i As Integer = 1 To 10
strings.Add(RandomString(r))
Next