Guid構造体自体は乱数ジェネレータではありませんが、NewGuidメソッドは一意なGUIDを返すために乱数を使用しているため、このメソッドの戻り値は一種の乱数とみることもできます。 単にランダムなIDが必要な場合には、Randomクラスを用いて生成せずとも、直接GUIDを使うことができます。
なお、Guid構造体を乱数として用いる場合は、variantフィールドやバージョン番号などの一部のビットは常に同じ値となる点に注意が必要です。
Guid.NewGuidメソッドでランダムなIDを生成する
Imports System
Class Sample
Shared Sub Main()
' ランダムなGUIDを10個生成する
For i As Integer = 1 To 10
Console.WriteLine(Guid.NewGuid())
Next
End Sub
End Class
実行結果の一例
19e95248-34ac-42b9-970a-61763322fd7e c2a96c19-cfbc-4376-b39e-7bc86cd59be6 5d18bb4a-0939-410f-a51f-9d600ee9075e a23e5662-afda-4534-9409-212110e4816b b25dba03-fbce-4f53-8d09-bfa3a057e50c 4753f00e-feaf-4f8d-b719-3027baaec197 5abb53c2-fc0e-4013-96a2-06f7ea9b642a 89c42aeb-3f5e-4165-8c8b-a4a6a27565ab b2c125db-2ecd-4cc3-b3ca-72ff491dd318 faa9345c-1e84-4f7d-8338-7969e97a5cdb
この結果にも現れているとおり、xxxxxxxx-xxxx-4xxx-8xxx-xxxxxxxxxxxx
のビットは常に同じ値となります。