GoLang mt_rand

is this article helpful? yes | no
GoLang replacement for PHP's mt_rand [Golang Play | edit | history]
func Mt_rand(min, max int64) int64 {
	r := rand.New(rand.NewSource(time.Now().UnixNano()))
	return r.Int63n(max-min+1) + min

PHP mt_rand

PHP original manual for mt_rand [ show | php.net ]


(PHP 4, PHP 5, PHP 7)

mt_randGenerate a random value via the Mersenne Twister Random Number Generator


int mt_rand ( void )
int mt_rand ( int $min , int $max )

This function does not generate cryptographically secure values, and should not be used for cryptographic purposes. If you need a cryptographically secure value, consider using random_int(), random_bytes(), or openssl_random_pseudo_bytes() instead.

Many random number generators of older libcs have dubious or unknown characteristics and are slow. The mt_rand() function is a drop-in replacement for the older rand(). It uses a random number generator with known characteristics using the » Mersenne Twister, which will produce random numbers four times faster than what the average libc rand() provides.

If called without the optional min, max arguments mt_rand() returns a pseudo-random value between 0 and mt_getrandmax(). If you want a random number between 5 and 15 (inclusive), for example, use mt_rand(5, 15).



Optional lowest value to be returned (default: 0)


Optional highest value to be returned (default: mt_getrandmax())

Return Values

A random integer value between min (or 0) and max (or mt_getrandmax(), inclusive), or FALSE if max is less than min.


Version Description
7.2.0 mt_rand() has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
7.1.0 rand() has been made an alias of mt_rand().
7.1.0 mt_rand() has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand() with MT_RAND_PHP as the second paramter.
5.3.4 Issues an E_WARNING and returns FALSE if max < min.


Example #1 mt_rand() example

echo mt_rand() . "\n";
mt_rand() . "\n";


The above example will output something similar to:




min max range must be within the range mt_getrandmax(). i.e. (max - min) <= mt_getrandmax() Otherwise, mt_rand() may return poorer random numbers than it should.

See Also