Cinco números aleatórios únicos de um subconjunto

Sei que perguntas semelhantes surgem muito e provavelmente não há resposta definitiva, mas quero gerar cinco números aleatórios únicos a partir de um subconjunto de números potencialmente infinitos (talvez 0-20 ou 0-1.000.000).
O único problema é que eu não quero ter que correrwhile loops ou preencha uma matriz.

Meu método atual é simplesmente gerar cinco números aleatórios a partir de um subconjunto menos os últimos cinco números. Se algum dos números coincidir, eles vão para o respectivo local no final do subconjunto. Portanto, se o quarto número corresponder a qualquer outro número, ele será definido como o quarto do último número.

Alguém tem um método que é "aleatório o suficiente" e não envolve loops ou matrizes dispendiosos?

Lembre-se de que isso é uma curiosidade, não um problema crítico. Eu agradeceria se todos não postassem "por que você está tendo esse problema?" respostas. Estou apenas procurando idéias.
Muito obrigado!

questionAnswers(6)

yourAnswerToTheQuestion