term% ls -F
term% cat index.txt
RAND(2)                       System Calls Manual                      RAND(2)

       rand,  lrand, frand, nrand, lnrand, srand, truerand, ntruerand, genran‐
       dom, prng, fastrand, nfastrand - random number generators

       #include <u.h>
       #include <libc.h>

       int    rand(void)

       long   lrand(void)

       double frand(void)

       int    nrand(int val)

       long   lnrand(long val)

       void   srand(long seed)

       ulong  truerand(void)

       ulong  ntruerand(ulong val)

       #include <mp.h>
       #include <libsec.h>

       void   genrandom(uchar *buf, int nbytes)

       void   prng(uchar *buf, int nbytes)

       ulong  fastrand(void)

       ulong  nfastrand(ulong val)

       Rand returns a uniform pseudo-random number x, 0â¤x<215.

       Lrand returns a uniform long x, 0â¤x<231.

       Frand returns a uniform double x, 0.0â¤x<1.0, This function calls lrand
       twice  to generate a number with as many as 62 significant bits of man‐

       Nrand returns a uniform integer x, 0â¤x<val.  Lnrand is the  same,  but
       returns a long.

       The algorithm is additive feedback with:

              x[n] = (x[n−273] + x[n−607]) mod 2^31

       giving a period of 2^30 Ã (2^607 - 1).

       The  generators are initialized by calling srand with whatever you like
       as argument.  To get a different starting value each time,


       will work as long as it is not called more often than once per  second.


       will initialize the generators to their starting state.

       Truerand  returns a random unsigned long read from /dev/random.  Due to
       the nature of /dev/random, truerand can only return a few hundred  bits
       a second.

       Ntruerand returns a uniform random integer x, 0â¤x<valâ¤232-1.

       Genrandom fills a buffer with bytes from the X9.17 pseudo-random number
       generator.  The X9.17 generator is seeded by 24 truly random bytes read
       from /dev/random.

       Prng uses the native rand(2) pseudo-random number generator to fill the
       buffer.  Used with srand, this  function  can  produce  a  reproducible
       stream of pseudo random numbers useful in testing.

       Both genrandom and prng may be passed to mprand (see mp(2)).

       Fastrand   uses   genrandom  to  return  a  uniform  unsigned  long  x,

       Nfastrand  uses  genrandom  to  return  a  uniform  unsigned  long   x,


       cons(3), mp(2)

       Truerand and ntruerand maintain a static file descriptor.