The
arc4random() function provides a high quality 32-bit pseudo-random number very quickly.
arc4random() seeds itself on a regular basis from the kernel strong random number subsystem described in
rnd(4). On each call, an ARC4 generator is used to generate a new result. The
arc4random() function uses the ARC4 cipher key stream generator, which uses 8*8 8 bit S-Boxes. The S-Boxes can be in about (2**1700) states.
arc4random() fits into a middle ground not covered by other subsystems such as the strong, slow, and resource expensive random devices described in
rnd(4) versus the fast but poor quality interfaces such as
random().