# The JavaScript Math.random() method

Posted on December 31, 2020

The `Math.random()` method is one of JavaScript’s Math object method that returns a positive random number that’s lower than 1, meaning it can generate a random number between `0` and `0.99999999999999999`

``````console.log(Math.random());
// 0.35574907184159277
console.log(Math.random());
// 0.7612336564594773
console.log(Math.random());
// 0.669688248313085
console.log(Math.random());
// 0.8246898327750964
``````

This method doesn’t receive any parameters.

## Generating integer numbers within a range

This number returned by this method can be used as the spark to generate a random number between a specified range of your choosing. For example, let’s say you want to generate a random number between `50` to `60`. Here’s how you do it:

``````const randomNum = Math.random();

const randomBetween = randomNum * (6 - 50) + 50;
``````

The math formula is as follows:

``````randomNum * (max - min) + min
``````

However, since the random number generator can only generate numbers lower than 1, this means you will only receive numbers between `50` and `59.99...` to include the maximum number into the random generator, you need to add a `+ 1` into the formula:

``````randomNum * (max - min + 1) + min
``````

But we’re not done yet here! The formula above will return a number between `50` and `60.99...`

``````0.999 * (60 - 50 + 1) + 50 = 60.98900
``````

The random number will never return `61`, so all you need to do is to round the number down with the `Math.floor()` method:

``````Math.floor(0.999 * (60 - 50 + 1) + 50);

// returns 60
``````

The complete formula is as follows:

``````const randomNum = Math.random();
const min = 50;
const max = 60;
const randomBetween = randomNum * (max - min + 1) + min;
const randomInteger = Math.floor(randomBetween);
``````

Now you can generate a random number between `50` to `60`, although you can’t generate a decimal number this way.

## Generating decimal numbers within a range

If you want your random generator to also allows decimal numbers, you need to replace the generated number with `max` only when the `randomBetween` value is higher than `max`:

``````const randomNum = Math.random();
const min = 50;
const max = 60;
let randomBetween = randomNum * (max - min + 1) + min;
if (randomBetween > max) {
randomBetween = max;
}
``````

Now you can have decimal numbers between the specified range.

More on JavaScript:

### Grab the free JavaScript book today 👍

Learn the building blocks of JavaScript programming language like data types, functions, objects, arrays and classes.

Use the knowledge from the book to build a small but solid program.