C # criando uma lista de números inteiros únicos aleatórios

Preciso criar uma lista com um bilhão de números inteiros e todos eles devem ser exclusivos. Também preciso que isso seja feito extremamente rápido.

Criar uma lista e adicionar números aleatórios um por um e verificar se cada um é uma duplicata é extremamente lent

Parece ser bastante rápido se eu apenas preencher uma lista com números aleatórios sem verificar se eles são duplicados e, em seguida, usar distinct (). ToList (). Repito isso até que não haja mais duplicatas. No entanto, a memória extra usada pela criação de uma nova lista não é ideal. Existe uma maneira de obter o desempenho de distinct (), mas em vez de criar uma nova lista, apenas modifica a lista de fontes?

questionAnswers(6)

yourAnswerToTheQuestion