Claro, é um erro muito simples que eu não meu atentei.
Ao utilizar a função map nós não mexemos na array original, apenas retornamos uma nova com os novos valores. A abordagem correta é a seguinte:
function sorteiaNumeros() {
const numberArray = Array.from({ length: 60 }, (_, i) => ({ value: i + 1, active: false }))
return (numbers: number) => {
numberArray.forEach(item => {
item.active = item.active || item.value === numbers
})
return numberArray
}
}
Basicamente com o forEach nós temos o comportamento contrário, não retornamos nada mas conseguimos alterar os valores da array original.