Synopsis:
   $rand(<maximum>)

Technical:
   * If <maximum> is omitted, this function returns the empty value.
   * Otherwise, a "random number" that fits in an "unsigned long" on your
     machine is created:
     * If <maximum> is zero, the "random number" is returned as is.
     * Otherwise, the return value is "as if" you had done the following:
		${rand(0) % <maximum>}

   For an overview of what a "Random number" is, see Random_Numbers(7)

Practical:
   If you don't know what random numbers are good for, then don't worry about
   this function.  If you do know what random numbers are good for, then you
   don't need to have this explained to you. ;-)

Returns:
   If <maximum> is 0, returns a random integer 0 .. ULONG_MAX
   If <maximum> is not 0, returns a random integer 0 .. <maximum>

Examples:
   $rand(50)            returns a random number no larger than 50
   $rand(0)             returns a random number no larger than ULONG_MAX
   $rand()              returns nothing

History:
   This function first appeared in ircII.

Cost:
   This function has a relative cost of four to six deltas. (one inward
	argument; a /set lookup; an open+read or two time retrievals or
	five division operations; and one return value)

See Also:
   Random_Numbers(7); srand(6)

