[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]
{
> I would also like some possible suggestions on a good random generator
> function or Procedure that is easy to understand.
}
{ Given }
var Seed; {among your globals}
{ You could try seeding it with: }
Procedure Randomise;
var
   hour, min, sec, sex100: word;
   root: Longint;
begin
   GetTime(hour,min,sec,sec100); {from Dos or WinDos unit}
   root := hour shr 1;
   root := root * sec * sec100;
   root := root shr 16;
   Seed := LoWord(root);   {needs WinAPI unit}
end;
{And to get a "random" integer in the range 0 to N - 1: }
function Random(Target: Integer): Integer;
var
   work: Longint;
begin
   work := Seed * Seed;
   work := work shr 16;
   Seed := LoWord(work);
   Random := Seed mod Target;
end;
[Back to NUMBERS SWAG index] [Back to Main SWAG index] [Original]