Наверняка, всем известно о существовании в .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 миллисекунд.