Самый распространенный способ - использовать метку времени.В 32-битном режиме это можно сделать с помощью инструкции rdtsc
, в 16-битном режиме: с помощью функции 0 прерывания BIOS 1A.
Поскольку это временная метка, избегайте ее частого использования (из-за отсутствия надлежащего дисперсии) и использовать его в качестве начального числа для генератора псевдослучайных чисел.Когда вам нужно только одно случайное значение, вы можете использовать временную метку напрямую.
Обычно достаточно простого генератора псевдослучайных чисел:
static int seed = now();
seed = (seed * LARGE_PRIME1) % LARGE_PRIME2;
И есть также вики