Как работает генератор случайных чисел?
На самом деле, случайные числа нужны для нескольких целей, и алгоритма, подходящего для всех, нет и быть не может.
Для моделирования может быть важным нормальное распределение выпадающих чисел. Здесь и случайное число по формуле вполне прокатит.
Для игровых целей может быть важна именно высокая случайность числа (то есть, грубо говоря, вероятность выпадения 00000000, 0101010101 и 11111111 одинакова и не зависит от предыдущих выпадений). 
Для безопасности обязательна невозможность выведения следующих чисел из предыдущих (или каких-то других условий).
Ну, а в идеале случайные числа вообще не должны вычисляться - если есть качественный поставщик энтропии. Это либо уже упомянутый аппаратный генератор, либо просто какие-то данные, которые невозможно восстановить или проанализировать одновременно с работой алгоритма. Зависит от конкретной задачи и условий.
Все случайные числа на самом деле псевдослучайные
Как работает функция rand в php?