Fiz o código ao mesmo passo em que assistia as aulas, e fiz tudo idêntico ao professor, mas os elementos ainda se repetem durante a execução (acompanho pelo log do console). Zeros também surgem. Segue o código:
<meta charset="UTF-8">
<input/>
<button>Compare os números</button>
<script>
    function sorteio() { //função sorteio não recebe parâmetro
        return Math.round(Math.random()*10); //gerador de numeros aleatórios
    }
    function sorteiaNumeros(quantidade) {
        var numeros = [];
        var numero = 1; //primeiro elemento da lista
        while(numero <= quantidade) {
            var numeroAleatorio = sorteio(); //só pode chamar o comando push se o número chutado não foi encontrado na lista
            if(numeroAleatorio !== 0) {
                var achou = false;
                for(var posicao = 0; posicao < numero.length; posicao++) {
                    if(numero[posicao] == numeroAleatorio) {
                        achou = true;
                        break;
                    }
                }
            }    
            if(achou == false) {
                numeros.push(numeroAleatorio);
                numero++;
            }
        }
        return numeros;
    }
    var numeros = sorteiaNumeros(8); //o numero dentro de sorteiaNumeros vai determinar a quantidade de elementos a serem gerados
    console.log(numeros);
    var comparar = document.querySelector("input");
    comparar.focus();
    function verificar() {
        var achou = false;
        for(var posicao = 0; posicao < numeros.length; posicao++){
            if (comparar.value == numeros[posicao]) {
                alert("Você ACERTOU!");
                achou = true;
                break;
            }
        }
        if(achou == false) {
            alert("Você ERROU!");
        }
        comparar.value = "";
        comparar.focus();
    }
    var button = document.querySelector("button");
    button.onclick = verificar;
</script>