次のコードを実行すると、常に同じ色が選択されます。
static void Main(string[] args)
{
string[] Colors = new string[10] { "Red", "Yellow", "Green", "Blue", "Purple", "White", "violet", "orange", "indigo", "blue" };
for (int i = 0; i < 13; i++)
{
Random rnd = new Random();
int code = rnd.Next(0, 9);
string Color = Colors[code];
Console.WriteLine(Color);
}
Console.ReadLine();
}
しかし、 `Random rnd = new Random();'の場合 ループの外側で作成された場合、結果は一意になります。ループがより高速で実行される場合、出力は同じになります。forループでデータベース挿入操作を実行すると、結果は異なるもの(ランダムなもの)になります(ブレークポイントを使用して段階的に実行すると、ランダムに選択されます)。
このような短い期間で異なるシードを供給することは本当に不可能ですか?