Reputation: 33383
In PHP, we have the choice of mt_rand() and rand() where mt_rand()
uses the Mersenne Twister algorithm and rand()
uses the libc random generator.
I would like to choose a random item out of an array using array_rand. However, does array_rand
use the Mersenne Twister algorithm?
It is quite simple to implement my own array_rand
using mt_rand
, but if array_rand uses the Mersenne Twister, then all the better.
Upvotes: 3
Views: 672
Reputation: 146390
It was probably not the case since results from array_rand()
used to be not random at all. It's been fixed in latest releases (see Vaxquis's answer for the details).
Upvotes: 1
Reputation:
It does now, as of PHP 7.1; see this RFC and this bug report for more details.
Upvotes: 4
Reputation: 522016
It appears that array_rand
uses php_rand()
internally, which appears to be the good old non-mt version.
Upvotes: 0