なんだかGoodVibes

日々の勉強メモです。

乱数の生成

乱数の生成についてメモ。

// シード値100を用いて初期化
var seed = 100;
var r = new Random(seed);

// 0〜5の乱数を生成
var r1 = r.Next(5);

// -5〜5の乱数を生成
var r2 = r.Next(-5, 5); 

ここで注意。シードが同じの場合
同じ乱数が生成されてしまいます。
なので、以下をシードに設定。

var seed = (int)DateTime.Now.Ticks;

DateTime.Now.Ticks は
0001 年 1 月 1 日午前 12時 00分: 00 以降の経過時間を 100 ナノ秒間隔の数を表します。
とのことなので、シード値が同じとなることはなさそう。

docs.microsoft.com