I am currently working on a function which is supposed to generate numbers within a specific range. Example: If the minimum of the range is 1 and the maximum is 5 then it should return a number between 1 and 5 or equal to 1 and 5.

This is the code I have so far:

```
function getRandomNumber(min: number, max: number): number {
max = max + 1; // in order to include the max value
return Math.floor(Math.random() * (max - min) + min);
}
```

This function does work as intended but unfortunately some numbers get generated quite often in sequence. Example: I define a range of 1 to 5, the output of the function will be something like: `1,1,1,1,1,5,5,5,1,1,1,1,5,1,1,1,5,1,1,4,4,2,2,3,1,1,1,1,5,1,5,1,5,5,1,1,1,1,3`

As we can see all the numbers of the range are being included but for some reason certain numbers e.g 1 and 5 in this case get generated often in sequence and are generally being generated more often than they should to be classified as ‘random’ (imo).

My question is if I have done anything wrong in my code or if this is supposed to be normal behavior.

### >Solution :

It looks like it is equally distributed …

```
function getRandomNumber(min, max) {
max = max + 1;
return Math.floor(Math.random() * (max - min) + min);
}
const count = { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0 };
for (let i = 0; i < 1e6; i++) count[getRandomNumber(1, 5)]++;
console.log(count);
```