Hola Lismery.
Creo haber dado con tu problema... La cuestión es que solo se llama una vez a la función sortearNumeros en todo el programa por ende, la consola te arroja los números repetidos. Y a no ser que actualices la página, secretos no va a tener nuevos números en su lista.
¿La solución? Llamar a la función de sortearNumeros cada vez que el botón de verificar se presione y termine de evaluar si acertaste o no el número. Aquí te dejo el código con algunas modificaciones.
<meta charset="UTF-8">
<input/>
<button>Verificar si acertó o no el secreto</button>
<script>
function aleatorio() {
return Math.round(Math.random()*10);
}
var secretos = sortearNumeros(4);
function sortearNumeros(cantidad) {
var secretos = [];
var contador = 1;
while (contador <= cantidad) {
var numeroAleatorio = aleatorio();
console.log(numeroAleatorio);
var encontrado = false;
for (var posicion = 0; posicion < secretos.lenght; posicion++) {
if (numeroAleatorio == secretos[posicion]) {
encontrado = true;
break;
}
}
if (encontrado == false) {
secretos.push(numeroAleatorio);
contador++;
}
}
return secretos;
}
// Definiendo una nueva función
function reiniciarSecretos() {
console.log("Randomizando numeros!")
secretos = sortearNumeros(4)
console.log(secretos);
}
var input = document.querySelector("input");
input.focus();
console.log(secretos);
function verificar() {
var encontrado = false;
for (var posicion = 0; posicion < secretos.lenght; posicion++) {
if (parseInt(input.value) == secretos[posicion]) {
alert("Usted acertó");
encontrado = true;
break;
}
}
if (encontrado == false) {
alert("Usted erró");
}
input.value = "";
input.focus();
reiniciarSecretos(); // llamando a la función para actualizar la lista de números
}
var button = document.querySelector("button");
button.onclick = verificar;
</script>
Espero haberte ayudado. Saludos.