Este artigo ensina passo a passo como criar uma função em JavaScript que retorna um número aleatório entre 2 números quaisquer.

Se estava procurando apenas pela função (pronta para uso) acesse o este artigo função para gerar número randômico.

Vamos imaginar que queiramos gerar números aleatórios entre 3 e 5 (range 3, 4 e 5).

Para gerarmos números aleatórios inteiros, devemos utilizar a função Math.floor que arredonda para baixo o ponto flutuante.

Math.floor(Math.random());

O código acima gera sempre o valor 0, então para obter números aleatórios até o limite máximo de 5, por exemplo, devemos multiplicar pelo número desejado (no caso 5).

Math.floor(Math.random() * 5);

O código acima irá gerar 0, 1, 2, 3 e 4

Para incluir o número 5 (nosso limite maximo) nos resultados precisamos somar com 1.

Math.floor(Math.random() * (5 + 1));

O código acima irá gerar 0, 1, 2, 3, 4 e 5

Agora podemos estabelecer um limite mínimo, por exemplo, 3.

Então precisaremos somar 3 no resultado final (cuidado! eu disse somar no resultado final).

Math.floor(Math.random() * (5 + 1) + 3);

O código acima irá gerar 3, 4, 5, 6, 7 e 8

Conseguimos um limite mínimo (3), mas estouramos o limite máximo (5). Podemos resolver isso subtraindo o valor mínimo (3) do valor máximo (5).

Math.floor(Math.random() * (5 - 3 + 1) + 3);

O código acima irá gerar 3, 4 e 5

Mas queremos transformar isso em uma função reutilizá-vel, então podemos substituir o valor 5 pela variável max e o valor 3 pela variável min.

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

Agora é só criar a função…

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

Fonte: MDN - Math.random()

Veja também:

  • https://stackoverflow.com/questions/1527803/generating-random-whole-numbers-in-javascript-in-a-specific-range
  • https://stackoverflow.com/questions/8904707/javascript-random-number-between-15-and-225-increments-of-30
  • https://coderwall.com/p/ro4mda/js-random-number-range-increment