# Random number generator

### Math.random()

The JavaScript Math object has some useful methods we can use to perform mathematical tasks on numbers.

`Math.random()` returns a random number between 0 (inclusive) and 1 (exclusive):

Example

``````console.log(Math.random());
console.log(Math.random());
console.log(Math.random());
``````

Returns some random numbers such as:

``````0.9638357574572449
0.8104676046927597
0.7326529015948489
``````

If you want a random number from 0 to 10, you can get it with simple math:

``````Math.random() * 10
``````

### Random integers

When designing games we often need to generate random integers, for example, to randomly draw a card from a deck. `Math.random()` and `Math.floor()` together can be used to generate random integers.

``````Math.floor(Math.random() * 10);
``````

The above code generates a random integer from 0 to 10 (exclusive), or from 0 to 9 (inclusive). There are totally 10 possible results. In order to get an integer from 1 to 10, we can simply add 1 to the result:

``````Math.floor(Math.random() * 10) + 1;
``````

In general, if we want a random integer between `min` and `max` (exclusive):

``````Math.floor(Math.random() * (max - min)) + min;
``````

### A User-defined random integer function

As you can see from the examples above, we can define a function to generate random integers.

This JavaScript function always returns a random integer between `min` (included) and `max` (excluded):

##### Function `randInt()`
``````function randInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
``````

Use the new function `randInt()` to get some random integers:

``````console.log(randInt(3, 8);       // 5
console.log(randInt(10, 20);     // 12
console.log(randInt(30, 40);     // 25
``````