Наверняка, всем известно о существовании в .Net класса System.Random, позволяющего получать якобы случайные числа практически без особых как умственных, так и временных затрат. Представьте что у нас есть такой вот метод, который чисто ради эксперимента мы вызовем в цикле несколько раз:
static string GetRandomNum(int minValue, int maxValue)
{
Random rnd = new Random();
return rnd.Next(minValue, maxValue).ToString();
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(GetRandomNum(1,11));
}
В данном случае вы получите совершенно одинаковые все "случайные" цифры.
Происходит так потому, что при инициализации объекта Random с использованием конструктора по умолчанию в качестве числа, использующегося для вычисления случайных чисел используется Environment.TickCount (количество миллисекунд, прошедших со времени старта системы), который обновляется раз в 15.6 миллисекунд.
