Компьютер не использует истинные случайные числа, потому что компьютер - совокупность последовательно описываемых элементов и их состояний. Чтобы получить число приближенное к истинному случайному, нужно использовать параметр, который для программы/человека будет наиболее непредсказуемым и далее преобразовать по любому алгоритму. Условия для алгоритма - простота, скорость, наибольшая длина списка чисел при последовательной генерации без обнаружения совпадения последовательностей чисел внутри списка.
Так работают ГПСЧ, можно можно использовать номер текущего такта с момента запуска, это довольно непредсказуемый для программы параметр (конечно и это можно посчитать, но речь идет о произвольном доступе к этому числу). Есть и более простой способ для ГПСЧ - использовать семя, задается начальное семя (число), а результат потом кладется в семя для следующего использования.
Например формула для 32х: curseed = (curseed * 0x5DEECE66DL + 0xBL) & ((1L « 48) - 1) *взято из Logisim*