Una forma de generar números pseudo-aleatorios puede ser la siguiente:
Código Delphi
[-]
VAR
RandomSeed: LONG;
FUNCTION Random: LONG;
BEGIN
RandomSeed := (RandomSeed * 27584621) + 1;
Random := RandomSeed RSH 16;
END;
Lo he traducido de un código fuente en C, así que no sé si funciona del todo bien. Posiblemente debas usar algún que otro molde.
Por cierto, el rango de los números aleatorios es de 0 a 2^16.