Używanie taktów zegara jako nasionka liczb losowych

Używam bieżących tyknięć zegara jako nasiona do generowania liczb losowych. Liczba losowa jest używana w pseudo GUID, a sprawdzenie w mojej bazie danych upewni się, że nie istnieje jeszcze przed powrotem. Przeciętnie ta metoda będzie wywoływana około 10k razy z rzędu w trakcie trwania procesu.

Obawiam się, że identyczna liczba może zostać wygenerowana z powrotem do tyłu, co skutkuje wieloma niepotrzebnymi rekurencyjnymi wywołaniami do sprawdzania mojej bazy danych dla tego samego identyfikatora. Chciałbym tego uniknąć, jeśli to możliwe. Jak najlepiej przetestować ten scenariusz?

Jeśli ma to znaczenie, aplikacja to .NET 4, a baza danych to SQL Server 2008.

private static string GenerateUniqueDelId()
{
    // Generate a random integer using the current number of clock ticks as seed.
    // Then prefix number with "DEL" and date, finally padding random integer with leading zeros for a fixed 25-character total length.
    int seed = (int)DateTime.Now.Ticks;
    Random number = new Random(seed);
    string id = string.Format("DEL{0}{1}", DateTime.Today.ToString("yyyyMMdd"), number.Next().ToString("D14"));

    // Lookup record with generated ID in Sesame. If one exists, call method recursively.
    string query = "SELECT * FROM Lead WHERE Esm_Id = @Esm_Id";
    SqlParameter[] parameters = { new SqlParameter("@Esm_Id", id) };
    if (DataManager.GetRow(query, parameters, DelConnection.Sesame) != null) return GenerateUniqueDelId();

    // Otherwise, return ID.
    return id;
}   //// End GenerateUniqueDelId()

questionAnswers(2)

yourAnswerToTheQuestion