Hello A friend of mine reported something that seemed like a bug (https://bugs.php.net/bug.php?id=69396 <https://bugs.php.net/bug.php?id=69396>) - to sum up: if you provide $max parameter that is larger than OS-provided getmaxrand(), the result will be artificially stretched, which in result leads to some values not appearing at all. That’s troublesome if for instance some people use that function to choose random server for a service, and the stretched result wouldn’t return even values at all.
The very same thing is reported as a first comment for the rand() function in PHP manual - and that comment is 8 years old. Apparently this is a sort-of correct behaviour, but it should be taken care of. I see 4 ways: 1. Document the behaviour and keep it that way. 2. Allow that behaviour, document it, but if $max > getrandmax(), emit a warning/notice. 3. Disallow that, document, and return false (as some other functions do when arguments are incorrect). 4. Disallow that, but trim $max to getrandmax(), and emit a warning/notice. I think that this behaviour should not be allowed, because in the end it generates incorrect results, doesn’t matter if the user would like that or not. What do you think about this issue? —Leszek