Wiele generatorów liczb losowych w starych libc ma niepewne albo nieznane charakterystyki i są powolne. Domyślnie PHP używa generatora liczb losowych z libc w funkcji rand(). Funkcja mt_rand() jest jej zamiennikiem. Używa ona generatora liczb losowych o znanej charakterystyce, Mersenne Twistera, który generuje liczby losowe w sam raz dla większości potrzeb kryptografii (aby dowiedzieć się więcej, zajrzyj na strony www Mersenne Twistera) i działa cztery razy szybciej od typowych generatorów zawartych w libc. Stronę www Mersene Twistera można znaleźć pod adresem http://www.math.keio.ac.jp/~matumoto/emt.html, a zoptymalizowaną wersję kodu źródłowego MT pod adresem http://www.scp.syr.edu/~marc/hawk/twister.html.
Jeśli funkcja zostanie wywołana bez opcjonalnych argumentów min i max, funkcja mt_rand() zwróci liczbę pseudolosową z przedziału pomiędzy 0 a RAND_MAX. Jeśli na przykład potrzebujesz liczby losowej z przedziału od 5 do 15 włącznie, użyj mt_rand (5, 15).
Pamiętaj, aby przed użyciem tej funkcji inicjalizować generator liczb losowych za pomocą mt_srand().
Notatka: W wersjach przed 3.0.7 argument max znaczył zakres. Aby otrzymać takie same wyniki w tychże wersjach, należy użyć mt_rand (5, 11) aby otrzymać liczbę losową z przedziału od 5 do 15.
Zobacz też mt_srand(), mt_getrandmax(), srand(), rand() i getrandmax().