Dentro de tu codigo faltaron acomodar correctamente las variables, ademas de un return
Te dejo en el codigo como comentario donde faltaron :)
<meta charset="utf-8">
<input/>
<button> Verificar si acertó con el secreto</button>
<script>
function aleatorio() {
// Debe llevar el return, para que retorne el valor obtenido
return Math.round(Math.random()*10);
}
function sortearNumeros(cantidad) {
var secretos = [];
var contador = 1;
while(contador <= cantidad) {
var numeroAleatorio = aleatorio();
console.log(numeroAleatorio);
var encontrado = false;
if(numeroAleatorio != 0) {
for(var posicion = 0; posicion < secretos.length; posicion++) {
if (numeroAleatorio == secretos[posicion]) {
// Debe ser igualdad con dos simbolos ==
encontrado == true;
break;
}
}
if (encontrado == false) {
secretos.push(numeroAleatorio);
contador++;
}
}
}
return secretos;
}
var secretos = sortearNumeros(4);
console.log(secretos);
var input = document.querySelector("input");
input.focus();
function verificar() {
// Debe ir dentro de la funcion
var encontrado = false;
for (var posicion = 0; posicion < secretos.length; posicion++) {
if(parseInt(input.value) == secretos[posicion]) {
alert("Usted acertó");
encontrado = true;
break;
}
}
if(encontrado == false) {
alert("Usted erró");
}
input.value= ("");
input.focus();
}
var button =document.querySelector("button");
button.onclick = verificar;
</script>