Randomクラスには、乱数を得るためのメソッドがいくつか用意されています。 求める乱数の型・値域によって、次のメソッドを使い分けることができます。 いずれも得られる乱数の値域は半開区間(n以上m未満)となっています。
- NextDoubleメソッド
- 0.0以上1.0未満の乱数を実数(Double)で取得する。 [0.0, 1.0)
- Nextメソッド
- 乱数を整数(Int32)で取得する。 以下のオーバーロードが用意されている。
- Next()
- 0以上の乱数を取得する。 [0, Int32.MaxValue)
- Next(max)
- 0以上max未満の乱数を取得する。 [0, max)
- Next(min, max)
- min以上max未満の乱数を取得する。 [min, max)
なお、NextDoubleメソッドには任意の値域を指定するバージョンは用意されていないため、NextDoubleの戻り値を加減乗除して求める値域に変換する必要があります。
Random.Nextメソッドで整数の乱数を生成する
using System;
class Sample {
static void Main()
{
var rand = new Random();
for (var i = 0; i < 20; i++) {
// 1以上6以下(7未満)の乱数を生成する
Console.Write("{0}, ", rand.Next(1, 7));
}
Console.WriteLine();
}
}
実行結果の一例
6, 3, 6, 6, 1, 6, 6, 5, 3, 4, 5, 2, 5, 1, 3, 5, 1, 2, 2, 6,