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.