Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to select range of values when using arc4random()

Can I set a range of numbers when using arc4random()? For example 50-100 only.

like image 452
NextRev Avatar asked Aug 06 '10 02:08

NextRev


1 Answers

As pointed out in other posts below, it is better to use arc4random_uniform. (When this answer was originally written, arc4random_uniform was not available). Besides avoiding the modulo bias of arc4random() % x, it also avoids a seeding problem with arc4random when used recursively in short timeframes.

arc4random_uniform(4) 

will generate 0, 1, 2 or 3. Thus you could use:

arc4random_uniform(51) 

and merely add 50 to the result to get a range between 50 & 100 (inclusive).

like image 73
RunLoop Avatar answered Sep 21 '22 23:09

RunLoop