function sorteia(n)
{
return Math.round(Math.random() * n); // não fico claro este trecho
}
var numeroPensado = sorteia(10); // não fico claro este trecho
Explicando primeiramente as funções Math.random() e Math.round():
A função Math.random() apenas vai retornar um número aleatório entre 0 e 1.
Exemplo (você pode rodar no console do browser (Viva ao Javascript!):
Math.random()
0.18994185829636878
Antes de explicar sobre o Math.round(), como você pode ver no retorno da função, o número gerado é muito pequeno. Por isso a função "sorteia(n)" recebe um número para multiplicar pelo valor gerado no Math.random().
Exemplo de Math.random() * 10:
Math.random() * 10
4.448309995635718 // Agora temos um número maior que zero!
Ai entra a função Math.round(), que está recebendo o retorno do math.random() * n, dentro da função sorteia.
O Math.round(), transforma esse retorno gigantesco em um número inteiro.
Veja, se eu pegar o número 4.448309995635718, que foi gerado na nossa última execução, e colocar na função Math.round(), o retorno é 4!
Math.round(4.448309995635718)
4
Antes do Math.round() seria bem difícil acertar o número, por isso transformamos ele em apenas um inteiro. Compreendeu?
No final, a variável "numeroPensado" apenas recebe um número inteiro que foi gerado pela nossa função sorteia, a partir do número que foi passado por parâmetro.
Agora que você entende como funciona as funções Math.round() e Math.random(), ficou fácil de entender o que tem dentro da variável.
Caso queira saber mais sobre as duas funções, pode consultar no MDN:
Math.random(): https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math/random
Math.round(): https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math/round
Abraço e bons estudos.