ランダムな整数を生成するにはどうすればいいですか?

C#でランダムな整数を生成するにはどうすればいいですか?

ソリューション

Random`クラス]1は、乱数を作成するために使用します。(もちろん疑似乱数ですが)。)

例を示します。

Random rnd = new Random();
int month  = rnd.Next(1, 13);  // creates a number between 1 and 12
int dice   = rnd.Next(1, 7);   // creates a number between 1 and 6
int card   = rnd.Next(52);     // creates a number between 0 and 51

複数の乱数を作成する場合は、Random インスタンスを保持して再利用してください。新しいインスタンスを作成するタイミングが近すぎると、ランダムジェネレータがシステムクロックからシードされるため、同じシリーズの乱数を生成してしまいます。

解説 (7)

new Random()は、現在のタイムスタンプをシードとすることに注意してください。

もし、1つの数字だけを生成したい場合は

new Random().Next( int.MinValue, int.MaxValue )を使用します。

詳しくは、Randomクラスをご覧ください。

しかし、時計の分解能は有限であるため、パラメータレス・コンストラクタを使用して異なるRandomオブジェクトを連続して作成すると、同一の乱数列を生成する乱数ジェネレータが作成されてしまいます。

そのため、このコードを乱数列の生成に使用しないでください。

解説 (3)
Random r = new Random();
int n = r.Next();
解説 (0)