Código completo: Ficou bem diferente do oficial, fiz desse jeitinho:
let amigosIncluidos = [];
let campoAmigosIncluidos = document.getElementById ("lista-amigos");
let amigosSorteados = [];
let campoSorteados = document.getElementById ("lista-sorteio");
let campoNomeDigitado = document.getElementById ("nome-amigo");
function adicionar() {
let nomeDigitado = document.getElementById ("nome-amigo").value;
amigosIncluidos.push (` ${nomeDigitado}`);
campoAmigosIncluidos.textContent = amigosIncluidos;
campoNomeDigitado.value = "";
}
function sortear() {
amigosSorteados = [];
campoSorteados.innerHTML = "";
let numeroParticipantes = amigosIncluidos.length;
for (let n = 0; n <= numeroParticipantes - 1; n++) {
let numeroSorteado = obterNumeroAleatorio (0, numeroParticipantes - 1);
if (amigosSorteados.includes (amigosIncluidos[numeroSorteado])) {
return sortear();
}
if (amigosIncluidos[n] == amigosIncluidos[numeroSorteado]) {
return sortear();
}
amigosSorteados[n] = amigosIncluidos[numeroSorteado];
}
for (n = 0; n <= numeroParticipantes - 1; n++) {
campoSorteados.innerHTML = campoSorteados.innerHTML + `${amigosIncluidos[n]} -> ${amigosSorteados[n]} <br>`;
}
}
function reiniciar() {
campoAmigosIncluidos.textContent = "";
amigosIncluidos = [];
amigosSorteados = [];
campoSorteados.innerHTML = "";
campoNomeDigitado.value = "";
}
function obterNumeroAleatorio (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}