RandomNumberGeneratorから整数形式の乱数を生成したい場合は、GetInt32メソッドを使うことができます。 このメソッドは静的メソッドであるため、インスタンスを生成せずに使用することができますが、逆に特定の乱数ジェネレーターインスタンスに対して使用することができません。 GetInt32メソッドは.NET Standard 2.1/.NET Core 3.0以降で使用することができます。
GetInt32メソッドでは、Random.Nextメソッドと同様に、生成したい乱数の値域を指定します。 GetInt32メソッドでは次の2つのオーバーロードが用意されていて、いずれも得られる乱数の範囲は半開区間(n以上m未満)となっています。
- GetInt32(toExclusive)
- 0以上・toExclusive未満の乱数を取得する。 [0, toExclusive)
- GetInt32(fromInclusive, toExclusive)
- fromInclusive以上・toExclusive未満の乱数を取得する。 [fromInclusive, toExclusive)
引数fromInclusive, toExclusiveは、どちらも負数を指定することができ、負の整数乱数を生成することもできます。
RandomNumberGenerator.GetInt32メソッドで整数の乱数を生成する .NET Standard 2.1/.NET Core 3.0
using System;
using System.Security.Cryptography;
class Sample {
static void Main()
{
// 1〜6までの整数乱数を20個生成して表示する
for (var i = 0; i < 20; i++) {
Console.Write("{0}, ", RandomNumberGenerator.GetInt32(1, 6 + 1));
}
Console.WriteLine();
}
}
実行結果の一例
3, 1, 2, 4, 6, 1, 2, 3, 4, 2, 2, 4, 4, 5, 5, 2, 3, 2, 5, 5,