Обычно есть две функции для использования генератора
псевдослучайных чисел.
Первая - устанавливает состояние генератора (seed).
Вторая - выдает собственно случайное число, на основе определенного алгоритма.
Часто для установки seed'а используют текущее время (randomize в delphi вроде именно это и делает).
-- Пт фев 26, 2010 14:03:35 --И от куда они берутся? Можете коротко описать работу асембреровского кода, приведенного GAA. В смысле на русском языке.
seed генератора на каждом шаге изменяется линейно со специально подобранными коэффициентами (

) и обрезается, чтобы влезло в регистр, а затем на его основе генерируется число в диапазоне от 0 до range:

.