# JavaScript Random In the previous tutorial, we learned about JavaScript Math objects, there we also learned about ``` random() ``` method that can generate random numbers. In this tutorial, we will discuss the Math random method in detail because it is one of the most important and widely used JS Math methods.

## Math.random()

The ``` Math.random() ``` method can generate a random number between 0 and 1, where 0 is inclusive and 1 is exclusive. This means the ``` random() ``` method always returns a value equal to and greater than 0 and less than 1. Example

```<script>
random_number = Math.random();  //random number between 0 to 0.999999
console.log(random_number);   //0.717273747683947
</script>```

### Generate Random Integers in JavaScript

The ``` Math.random() ``` number always returns a decimal point number between 0 to 1(exclusive). But we can multiply the returned random number with an integer value to increase the range of the random number. And then roundup the number using either ``` Math.floor() ``` , ``` Math.ceil() ``` , ``` Math.round() ``` or ``` Math.trunc() ``` methods to get an integer value. Example

```<script>

//random number between 0 to 9
random_number1 = Math.floor(Math.random()*10);  // round down the number

//random number between 0 to 9
random_number2 = Math.ceil(Math.random()*10);  // round down up number

//random number between 0 to 9
random_number3 = Math.trunc(Math.random()*10);  // remove the decimal points

//random number between 0 to 9
random_number4 = Math.round(Math.random()*10);  // round number

console.log(random_number1);
console.log(random_number2);
console.log(random_number3);
console.log(random_number4);

</script>```

Output(console)

```8
8
2
8```

### Create a Random function in JavaScript

By far we have learned how to generate random numbers in JavaScript, and how to increase its range and generate random integer numbers. But by doing so we are generating only random numbers between ``` o ``` to ``` n-1 ``` . Let's say we want to create an OTP application where we want to generate a random 4 digit number, how can we do that. To achieve this objective we need to define a function or logic that can generate a random number between 1000 to 9999, that covers all the 4 digits random numbers. Example

```<script>
function generate_random_num(min_val, max_val)
{
return Math.round(Math.random()*(max_val-min_val)) +min_val
}

//four digit random number
rand_4 = generate_random_num(1000, 10000);

//five digit random number 10000, 99999
rand_5 = generate_random_num(10000, 100000);

console.log("The four digit random number is: "+rand_4);
console.log("The five digit random number is: "+rand_5);
</script>```

Output

```The four digit random number is: 4758
The five digit random number is: 73767```

Behind the code In the above example the ``` Math.round(Math.random()*(max_val-min_val)) +min_val ``` statement will make sure that the random number always generated between ``` min_vlaue ``` (inclusive) and ``` max_value ``` (exclusive) . If you want to make both ``` min_val ``` and ``` max_val ``` inclusive, there you can use this return statement ``` Math.round(Math.random()*(max_val-min_val+1)) +min_val ```

## Summary

• The ``` Math.random() ``` method returns a random number between 0(included) to 1(excluded).
• To increase the range of generated random numbers we can multiply the generated number with a max value.
• To generate a Integer random number we can round the generated random number using round(), floor(), ceil() or trunc() method.