Gere um número exclusivo dentro do intervalo (0 - X), mantendo um histórico para evitar duplicatas

Eu corri para o desafio onde eu preciso de uma função que retorna um número aleatório dentro de um determinado intervalo de0 - X. Não só isso, mas eu preciso que o número retornado sejaúnico; não duplicando números que já foram retornados em chamadas anteriores para a função.

Opcionalmente, quando isso é feito (por exemplo, o intervalo foi "esgotado"), basta retornar um número aleatório dentro do intervalo.

Como alguém iria fazer isso?

questionAnswers(4)

yourAnswerToTheQuestion