RandomNumberGeneratorクラスを使って乱数を生成するには、GetBytesメソッドを使います。 GetBytesメソッドは、Random.NextBytesメソッドと同様のメソッドで、引数として与えられたバイト配列を乱数で満たします。
RandomNumberGenerator.GetBytesメソッドでバイト配列を乱数で満たす
Imports System
Imports System.Security.Cryptography
Class Sample
Shared Sub Main()
Using rng As RandomNumberGenerator = RandomNumberGenerator.Create()
' RandomNumberGeneratorを使って16バイトのnonce値を3個生成する
Dim nonce(15) As Byte
For i As Integer = 1 To 3
rng.GetBytes(nonce)
Console.WriteLine(BitConverter.ToString(nonce))
Next
End Using
End Sub
End Class
実行結果の一例
44-55-FB-46-91-80-CB-8E-EC-52-5A-06-48-13-46-B5 F7-30-40-46-6E-1B-80-00-B5-61-D5-13-0D-3A-BD-9E 5C-A6-2D-70-FF-55-BA-BF-E5-A1-D1-F8-94-1D-55-A6
Randomクラスとは異なり、RandomNumberGeneratorはシード値を必要としません。 RandomNumberGeneratorでは、インスタンスに関わらずメソッド呼び出し毎に異なる乱数を得ることができます。