Olá Caio, tudo bem com você?
Então acredito que a sua lógica criou um loop infinito, e por isso não da certo, vou te mostrar:
O seu programa começa sorteando um valor:
var numeroAleatorio= gerarNumero()
Vamos supor que numeroAleatorio
equivale a 8
, dessa forma iremos entrar no while e como não há nada em nosso array temos que:
if(existe== false) {
numerosGerados.push(numeroAleatorio)
contador1++
}
Pois bem, agora temos que o nosso array esta dessa maneira:
numerosGerados= [ 8 ]
E iremos para a segunda iteração do while
e aqui está o problema, como não esta sendo sorteado um valor novo, nosso numeroAleatorio
ainda equivale a 8, e dentro do nosso for, essa condição:
if (numerosGerados[posicao]== numeroAleatorio){
Será verdadeira, então colocamos existe = true
e não aumenta o contador de iterações, e isso irá se repetir infinitamente, e por isso o seu código não funciona :)
Para corrigir é bem simples, basta colocar o nosso número aleatório para cada iteração do while ser gerado novamente dessa maneira:
while (contador1 < A) {
var numeroAleatorio = gerarNumero()
E não teremos mais o loop infinito!
Abraços e Bons Estudos :)