endoflist 
!These Pseudo-random numbers were written by P. Reid.  It is not known if
!they are genuinely random or not.

!**  %routine   INITALISE RANDOM    sets up the random integer SEED          **!
!**  %real %fn  RANDOM REAL (LO,HI) returns uniformly distributed reals      **!
!**                                 between LO and HI inclusive              **!
!**  %short %fn RANDOM INT (LO,HI)  returns uniformly distributed short      **!
!**                                 integers between LO and HI inclusive     **!

own  integer  Seed=0  {initialised to 0: JHB mod 16/12/86}


routine  Initialise Random
!
! Set up SEED
!
   Seed = CpuTime
end 


realfn  Random Real(real  Lo, Hi)
!
! Returns a random real between LO and HI inclusive
!
   Seed = (23501*Seed + 6923) & 32767
   result  = Lo + (Seed * (Hi - Lo))/32767
end 


shortfn  Random Int (short  Lo, Hi)
!
! Returns a random shortinteger between LO and HI inclusive
!
   Seed = (23501*Seed + 6923) & 32767
   result  = Int(Lo + (Seed * (Hi - Lo))/32767)
end 

list