você fechou um if antes:
function sorteiaNumeros(quantidade){
var segredos = [];
var numero = 1;
while(numero <= quantidade) {
var numeroAleatorio = sorteia();
if (numeroAleatorio != 0){
var achou = false;
for(var posicao = 0; posicao < segredos.length; posicao++){
if(segredos[posicao] == numeroAleatorio) {
achou = true;
break;
}
}
//aqui fecha um if e um for
if (achou == false){
segredos.push (numeroAleatorio);
numero++;
}
}
}
//aqui fecha dois ifs e um while
return segredos;
}
no seu ta fechando antes, por isso ta gerando o zero