A régebbi libc-k véletlenszám generátorai kétes vagy bizonytalan jellegűek és lassúak voltak. Alapértelmezés szerint, a PHP a libc véletlenszám generátorát használja a rand() függvényben. A mt_rand() függvény egy "beugrós" helyettesítése ennek. Ez egy ismert jellemvonásokkal bíró véletlenszám generátor, a Mersenne Twister, ami többféle kriptogáfiai eljárás inicializálásához (seeding) is megfelelő véletlenszámokat generál kb. négyszer gyorsabban, mint az átlagos libc rand függvények. (Részletesebb információkért nézd meg a Mersenne Twister honlapját, amely http://www.math.keio.ac.jp/~matumoto/emt.html , az MT forrás optimalizált változata http://www.scp.syr.edu/~marc/hawk/twister.html pedig címen található.
Ha a min és max paraméterek nélkül hívod meg az mt_rand() függvényt, akkor az ál véletlenszám értéke 0 és RAND_MAX közé fog esni. Ha pl. 5 és 15 közé (bezárólag) eső véletlen számot akarsz kapni, akkor mt_rand(5, 15) kell írni.
Régebbi PHP verziókban a véletlenszám generátor kiinduló értékét a mt_srand() függvénnyel kell beállítani, de a 4.2.0-tól ez már nem szükséges.
Megjegyzés: A 3.0.7 verziók előtt a max paraméter helyett range (tartomány) szerepelt. Ezekben a verziókban az előző példával egyenértékű megoldás a mt_rand (5, 11), hogy 5 és 15 közé eső véletlen számot kapj.
Lásd még: mt_srand(), mt_getrandmax() és rand()!