Gerar um número aleatório entre dois números em JavaScript

Moataz Farid 12 outubro 2023
  1. Gerar um número aleatório entre 1 e um valor definido pelo utilizador em JavaScript
  2. Gerar um número aleatório entre dois números em JavaScript
Gerar um número aleatório entre dois números em JavaScript

Este tutorial aprenderá como gerar um número aleatório entre dois números em JavaScript. Vamos utilizar o método Math.random() que gera um número flutuante aleatório entre 0.0 e 0.999.

Gerar um número aleatório entre 1 e um valor definido pelo utilizador em JavaScript

Podemos gerar um número aleatório em JavaScript utilizando um gerador de números aleatórios - Math.random(), multiplicando o número de flutuação gerado com o número máximo que queremos gerar. Math.random()* max gera um número aleatório entre 0 e max.

function generateRandom(max) {
  return Math.random() * max;
}

console.log('1st try: ' + generateRandom(5));
console.log('2nd try: ' + generateRandom(5));
console.log('3rd try: ' + generateRandom(5));
console.log('4th try: ' + generateRandom(5));

Resultado:

1st try: 3.3202340813091347
2nd try: 1.9796467067025836
3rd try: 3.297605748406279
4th try: 1.1006700756032417

Se queremos obter apenas o resultado em formato inteiro, podemos utilizar Math.floor(), este método devolve o maior número inteiro inferior ou igual ao número de entrada.

console.log(Math.floor(1.02));
console.log(Math.floor(1.5));
console.log(Math.floor(1.9));
console.log(Math.floor(1));

Resultado:

1
1
1
1

Utilizando o método Math.floor(), podemos obter os nossos números inteiros gerados aleatoriamente,

function generateRandomInt(max) {
  return Math.floor(Math.random() * max);
}

console.log('1st Integer try: ' + generateRandomInt(9));
console.log('2nd Integer try: ' + generateRandomInt(9));
console.log('3rd Integer try: ' + generateRandomInt(9));
console.log('4th Integer try: ' + generateRandomInt(9));

Resultado:

1st Integer try: 8
2nd Integer try: 5
3rd Integer try: 7
4th Integer try: 0

Gerar um número aleatório entre dois números em JavaScript

Se também queremos ter um valor mínimo definido pelo utilizador, precisamos de alterar a equação de Math.random() * max para Math.random() * (max-min)) +min. Utilizando esta equação, o valor retornado é um número aleatório entre min e max.

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

console.log('1st min and max try: ' + generateRandomInt(2, 9));
console.log('2nd min and max try: ' + generateRandomInt(2, 9));
console.log('3rd min and max try: ' + generateRandomInt(2, 9));
console.log('4th min and max try: ' + generateRandomInt(2, 9));

Resultado:

1st min and max try: 6
2nd min and max try: 2
3rd min and max try: 8
4th min and max try: 3

Caso estejamos interessados em ter o valor max a ser incluído no nosso âmbito do gerador aleatório, precisamos de alterar a equação para (Math.random() * (max+1 - min)) +min. A adição de 1 a max-min incluirá o máximo no intervalo e Math.floor() garantirá sempre que este valor não seja superior ao max.

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

console.log('1st min and max included try: ' + generateRandomInt(2, 9));
console.log('2nd min and max included try: ' + generateRandomInt(2, 9));
console.log('3rd min and max included try: ' + generateRandomInt(2, 9));
console.log('4th min and max included try: ' + generateRandomInt(2, 9));

Resultado:

1st min and max included try: 3
2nd min and max included try: 7
3rd min and max included try: 9
4th min and max included try: 6

Artigo relacionado - JavaScript Number