Para gerar números aleatórios em C# podemos usar por exemplo os metodos Next ou NextDouble da classe System.Random.
Veja abaixo como gerar números aleatórios usando Random.
Random rnd = new Random();
//Números de 0 até 10
rnd.Next(11); //1
//Números de 10 até 999999
rnd.Next(100, 1000000); //152805
//Retorna um Double
rnd.NextDouble(); //0.389307311917333
Para criar identificadores únicos em C#, usamos o metodo NewGuid da classe System.Guid.
Ou seja, Guid.NewGuid() cria um identificador único. E esse identificador único tem uma probabilidade muito baixa de ser duplicado.
Veja os exemplos abaixo.
//A sequência de caracteres de formato só pode ser
//"D", "d", "N", "n", "P", "p", "B" ou "b".
Guid.NewGuid().ToString(); //870841ae-0d37-4815-ab4d-3d696f5e9747
Guid.NewGuid().ToString("D"); //cc96196c-5e1e-4313-83dc-dc785ce8ed18
Guid.NewGuid().ToString("d"); //d956f57f-8124-4d4d-9600-64d2fcea8897
Guid.NewGuid().ToString("N"); //822bf294bf1a4304878d930d4afaf9c8
Guid.NewGuid().ToString("n"); //355e89e59a994f7aa87e62a087455b83
Guid.NewGuid().ToString("B"); //{82efb4c2-eb3c-494d-ad09-3367ee16e41c}
Guid.NewGuid().ToString("b"); //{87d9b147-327e-4b87-aefe-a140da8914d4}
Guid.NewGuid().ToString("P"); //(91053da4-44ea-40da-b8da-998a3ed4eaa4)
Guid.NewGuid().ToString("p"); //(21b29480-7b43-4dbb-861f-7770b9f336eb)