The
` random`
function will by default produce a sequence of numbers that can be duplicated
by calling
` srandom`
with
‘`1`’
as the
* seed*.
The
` srandom`
function may be called with any arbitrary
* seed*
value to get slightly more unpredictable numbers.
It is important to remember that the
` random`
function is entirely predictable, and is therefore not of use where
knowledge of the sequence of numbers may be of benefit to an attacker.
The
` arc4rand`
function will return very good quality random numbers, slightly better
suited for security-related purposes.
The random numbers from
` arc4rand`
are seeded from the entropy device if it is available.
Automatic reseeds happen after a certain timeinterval and after a
certain number of bytes have been delivered.
A forced reseed can be forced by passing a non-zero value in the
* reseed*
argument.

The
` read_random`
function is used to return entropy directly from the entropy device
if it has been loaded.
If the entropy device is not loaded, then
the
* buffer*
is filled with output generated by
` random`.
The
* buffer*
is filled with no more than
* count*
bytes.
It is advised that
` read_random`
is not used; instead use
` arc4rand`

All the bits generated by
` random`,
` arc4rand`
and
` read_random`
are usable.
For example,
'random()&01'
will produce a random binary value.

The
` arc4random`
is a convenience function which calls
` arc4rand`
to return a 32 bit pseudo-random integer.