Here we will learn how to generate random number in a specific range in JavaScript.
In JavaScript, we can generate random numbers using it’s in-built Math.random()
method.
The Math.random()
function returns floating-points number between 0 and 1 (inclusive of 0 and exclusive of 1). with uniform distribution over that range.
Since Math.random()
returns the number in decimal between 0 and 1. So , we have to multiple it with an integer to set range higher then 1.
Example:
// Returns a random integer from 0 to 4 (exclusive of 5)
Math.random() * 5
//output : 4.9878652
You can also see that the max value (here 5) is always excluded in Math.random()
results number.
To include the max value in the range we have to add +1 at the end of it.
Example:
//To get the random between 1 to 100 (inclusive of 100)
Math.random() * 100 + 1;
//output : 67.9878652
Since the results are in decimal, you can round it up to an integer using Math.floor()
method in JavaScript.
Example:
Math.floor(Math.random() * 100 )+ 1;
//output: 67
What if the min value is not 0?
To solve that issue, we get the difference between the min and max value and multiple with the the randomly generated number. It will return us an integers.
For example, if we have a range between 1 to 5 then the delta value will be 5-1 i.e 4 so the random number generated will be between 0 and 3.9999.
And now we just have to add the min value to it and it will shift into the right range.
So using Math.random()
and Math.floor()
we can generate random integers between a specific range.
[Complete code]Generate random numbers in JavaScript within a range.
So here we will code a function which will take two numbers min value and max value(exclusive) and will return use a randomly generated integer.
Exclusive of max value:
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
console.log(randomNum(1,4))
//output: 1 or 2 or 3
Inclusive of the max value:
We just have to add +1 to the difference of max and min value.
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
console.log(randomNum(1,4))
//output: 1 or 2 or 3 or 4
Related Topics: