Gerar Código Único Aleatório

Preciso gerar um código numérico de nove dígitos (preferencialmente aleatório), exclusivo para um determinado dia (o mesmo número não pode ser gerado novamente no mesmo dia). Eu estava pensando em usar HHMMSSmmm (horas, minutos, segundos e milissegundos) para gerar o código exclusivo, mas não é realmente aleatório. Esse método de geração de código pode ser acessado por vários métodos ao mesmo tempo, então terei que bloquear o método. Mas isso garantirá que o número seja único, pois é possível que a geração do número demore menos de um milissegundo e dois threads obtenham o mesmo númer

Existe uma maneira melhor de gerar um código numérico único aleatório, exclusivo para um determinado dia? O número de dígitos pode ser de 6 a 9 dígito

Editar O número de números aleatórios a serem gerados depende do número de transações. Inicialmente, o número pode ser menor, mas, durante um período de tempo, pode se tornar muito alto (várias transações por segundo). Portanto, eu não gostaria de comparar o número com uma lista usada, pois isso pode ter problemas de desempenh

aleatoriedade é necessária, pois esse número será inserido pelo usuário no telefone. Esse número é a única maneira de vincular a transação online à transação telefônica, para que eu não queira que o usuário insira um número diferente por engano.

A geração de números aleatórios precisa ocorrer em um aplicativo ASP.NET MV

questionAnswers(13)

yourAnswerToTheQuestion