Random Numbers
==============
A deterministic computer program cannot generate true random numbers.
For most purposes, "pseudo-random numbers" suffice. A series of
pseudo-random numbers is generated in a deterministic fashion. The
numbers are not truly random, but they have certain properties that
mimic a random series. For example, all possible values occur equally
often in a pseudo-random series.
In Emacs, pseudo-random numbers are generated from a "seed" number.
Starting from any given seed, the `random' function always generates
the same sequence of numbers. Emacs always starts with the same seed
value, so the sequence of values of `random' is actually the same in
each Emacs run! For example, in one operating system, the first call
to `(random)' after you start Emacs always returns -1457731, and the
second one always returns -7692030. This repeatability is helpful for
debugging.
If you want random numbers that don't always come out the same,
execute `(random t)'. This chooses a new seed based on the current
time of day and on Emacs's process ID number.
- Function: random &optional limit
This function returns a pseudo-random integer. Repeated calls
return a series of pseudo-random integers.
If LIMIT is a positive integer, the value is chosen to be
nonnegative and less than LIMIT.
If LIMIT is `t', it means to choose a new seed based on the
current time of day and on Emacs's process ID number.
On some machines, any integer representable in Lisp may be the
result of `random'. On other machines, the result can never be
larger than a certain maximum or less than a certain (negative)
minimum.