예전 libc의 많은 난수 생성기는 모호하거나 혹은 unknown characteristics를 갖고 있으며 느렸었다. 기본적으로 PHP의 rand()함수는 libc 난수 생성기를 사용한다. mt_rand() 함수는 이를 위한 드롭-인 교체(drop-in replacement) 이다. 이 함수는 난수 발생기로 known characteristics인 the Mersenne Twister를 사용하는데 이는 몇몇 종류의 암호문을 seed하는데 쉽고(더 자세한 내용은 홈페이지를 참고하라), libc가 제공하는 것보다 네배나 빠르다. Mersenne Twister의 홈페이지는 http://www.math.keio.ac.jp/~matumoto/emt.html이며, 최적화된 MT의 소스는 http://www.scp.syr.edu/~marc/hawk/twister.html에서 얻을 수 있다.
선택적 매개변수인 min과 max인수 없이 호출되면, mt_rand()는 0 과 RAND_MAX 사이의 의사-랜덤 변수를 반환한다. 만약 예를 들어 5보다 크거나 같고 15보다 작거나 같은 범위의 난수를 원한다면, mt_rand (5,15)를 사용하라.
이 함수를 사용하기 전에 난수 발생기(random number generator)를 선언하는 것을 잊지 말라. mt_srand().
참고: 3.0.7 이전 버젼에서의 max의 의미는 range였다. 이 버젼에서 5와 15 사이의 난수를 얻기 위해 rand (5, 11) 가 사용된다.
See also mt_srand(), mt_getrandmax(), srand(), rand() and getrandmax().