Pedi para o codigo gerar 9 numeros aleatorios sem repetir nenhum, no entanto, as vezes ele só gera 5 ou 6, acredito que seja pq ele pare de gerar quando encontra um número repetido. Alguem tem alguma ideia do pq isso esta acontecendo? Segue imagem para ilustrar:
  
Segue abaixo o código:
<meta charset="UTF-8">
<input/>
<button>Compare com o meu segredo</button>
<script>
function sort(){
    return Math.round(Math.random() * 10);
} 
function sorteiaNumeros(quantidade){
    var segredos = [];
    var numero = 1;
    while(numero <= quantidade){
        var numeroAleatorio = sort();
    if(numeroAleatorio !== 0){
            var achou = false;
            for (var posicao = 0; posicao < segredos.length; posicao++){
                if(segredos[posicao] == numeroAleatorio){
                    achou = true;
                    break;
                }
            }
            if(achou == false) {
                segredos.push(numeroAleatorio);
            }
            numero++
        }
    }
    console.log(segredos)
    return segredos;
}
    var segredos = sorteiaNumeros(9);
    var input = document.querySelector("input");
    input.focus();
    function verifica(){
        var encontrou = false;
        for(var posicao = 0; posicao < segredos.length; posicao++){
            if (input.value == segredos[posicao]){    
            alert("Você acertou!")
            encontrou = true;
            break;
         }
        }
        if (encontrou == false){
            alert("Você errou!")
        }
        input.value = "";
        input.focus();
    }
    var button = document.querySelector("button")
    button.onclick = verifica;
</script>