JavaScript Math random()

The JavaScript Math.random() function returns a floating-point, pseudo-random number between 0 (inclusive) and 1 (exclusive).

The syntax of the Math.random() function is:

Math.random()

random, being a static method, is called using the Math class name.


Math.random() Parameters

The Math.random() function does not take in any parameters.


Return value from Math.random()

  • Returns a floating-point, pseudo-random number between 0 (inclusive) and 1 (exclusive).

Example 1: Using Math.random()

// generating random number in range [0, 1)
var random_num = Math.random();
console.log(random_num);

Output

0.5856407221615856

Note: You might get a different output in the above program as Math.random() will generate a random number.


Example 2: Generate random number between two numbers

// generating random number in range [x, y)
function getRandomNum(min, max) {
  return Math.random() * (max - min) + min;
}

// random number in range 5(inclusive) and 10(exclusive)
var random_num = getRandomNum(5, 10);
console.log(random_num);

// random number in range 0(inclusive) and 100(exclusive)
var random_num = getRandomNum(0, 100);
console.log(random_num);

Output

6.670210050278422
70.46845725092274

Here, we can see that the random value produced by Math.random() is scaled by a factor of the difference of the numbers. Then it is added to the smaller number to produce a random number between the given range.


Example 3: Generate random integer between two numbers

// Generating random integer in range [x, y)
// The maximum is exclusive and the minimum is inclusive
function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

// random int in range 5(inclusive) and 10(exclusive)
var random_num = getRandomInt(5, 10);
console.log(random_num);

// random int in range 0(inclusive) and 100(exclusive)
var random_num = getRandomInt(0, 100);
console.log(random_num);

Output

6
46

Firstly, we ceil the min value while floor the max value.

Here, we can see that the random value produced by Math.random() is scaled by a factor of the difference of the numbers. Then it is floored using Math.floor() to make it an integer. Finally, it is added to the smaller number to produce a random number between the given range.


Example 4: Generate integer between two numbers(inclusive)

// Generating random integer in range [x, y]
// Both values are inclusive
function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

// random int between 5 and 10
var random_num = getRandomInt(5, 10);
console.log(random_num);

// random int between 5 and 10
var random_num = getRandomInt(0, 100);
console.log(random_num);

Output

8
100

Firstly, we ceil the min value while floor the max value.

In this case, the only difference is that one is added to the difference so that the max value is also included.