As commented in the chat, and complemented the response of Maniero and Renan.
Using a GUID, it can be difficult to generate a collision, but using a number of that size, 38 houses, can cause problems such as space, memory, search, among others, of course depending on the application these problems do not exist.
My solution, use a library that generates pseudorandom numbers, take a module of 5 decimal places, is enough enough not to become a predictable number, doing this concatenates the right of a sequential number, so its possible problems described above will be harder to come by, plus you'll have the assurance that it will never be repeated.
Example
0001 numero sequencial
58976 numero gerado aleatoriamente
Your 000158976.jpeg
file for more than the first part is predictable the second is not.
Look at my working example
link
string g;
g = Guid.NewGuid().ToString();
string nome = g.Substring(0, 5);
nome = x.ToString()+nome;
Console.WriteLine(nome);