# Generate a Random Number Between Two Numbers in JavaScript

To generate a random number between two numbers, we can use the `Math.random()` function in combination with the `Math.floor()` function.

The `Math.random()` function generates a random floating-point number between 0(inclusive) and 1. Whereas, the `Math.floor()` function rounds down the given number to its nearest integer. We can use these two functions in combination to generate a random number in a given range.

The following example generates a random number between 10(inclusive) and 50(inclusive):

```const min = 10;
const max = 50;

// Generate random number
let random = Math.floor(Math.random()*(max - min + 1) + min);

console.log(random);
// Output: 34
```

How does it work?

As I previously said, the `Math.random()` function generates a random floating-point number between 0(inclusive) and 1.

```console.log(Math.random());  // 0.41
console.log(Math.random());  // 0.90
console.log(Math.random());  // 0.30
console.log(Math.random());  // 0.16```

But, we don’t want the random number to be generated between 0 and 1, instead, we want to generate it in a given range.

In our case, we want the random number between 10(min) & 50(max). Therefore, we have to multiply the number generated by the `Math.random()` function with (max – min + 1).

This will generate a random number between 0 and (max – min + 1) i.e. 0 and (50 – 10 + 1) = 41(not inclusive):

```console.log(Math.random()*(max-min+1));  // 1.19
console.log(Math.random()*(max-min+1));  // 27.88
console.log(Math.random()*(max-min+1));  // 37.31```

As we also want to set a minimum limit to the number, therefore, we have to add the min range to it. This will result in a floating-point number between min and max limit. We have set it to 10 & 50.

```const min = 10;
const max = 50;

// Generates a floating-point number between 10 & 50
console.log(Math.random()*(max-min+1) + min);  // 10.17
console.log(Math.random()*(max-min+1) + min);  // 23.49
console.log(Math.random()*(max-min+1) + min);  // 48.91
```

At last, we have to round down these floating-point numbers to their nearest integers. Therefore, we have used the `Math.floor()` function.

```console.log(Math.floor(15.98));  // 15
console.log(Math.floor(15.51));  // 15
console.log(Math.floor(15.00));  // 15```