Стандартный подход для этого состоит в том, чтобы просто сгенерировать GUID :
Console.WriteLine(Guid.NewGuid());
Он разработан так, чтобы быть уникальным и крайне маловероятно, чтобы генерировать два идентичных идентификатора GUID даже на многих экземплярах одновременно, поэтомувам не нужно сильно беспокоиться об атомарности этой операции.
Возможность столкновения настолько мала, что вы можете вообще пропустить ее обработку, но просто чтобы быть уверенным, что вы можете установить уникальный ключ для этого столбца иотноситесь к нему как к исключению, цикл не обязательно.