W c# jest GUID do tego, ale guid generuje stringa z hexwartościami i jeszcze ma myślniki w środku. Więc w przypadku samej liczby trza by jeszcze przelecieć to kodem który np pododaje kolejne wartości przekonwertowane na dec i zrobi resztę z dzielenia przez maksymalną możliwą, alternatywnie wrzuci do stringa ową wartość i weźmie pierwsze, ostatnie lub środkowe cyfry z ciągu (substringiem)...
Kolejna opcja to wziąć jakąś funkcję hashującą i ją przeliczyć aby wszędzie były cyferki i potem wziąć określony kawałek.
Potem wrzucić na bazę "blokadę" że po podaniu z 1 połączenia 3 nieprawidłowych masz blokadę na 30 minut (zrobić to jako stored procedure na bazie samej) i tyle. Powodzenia w zgadywaniu.
Tak czy inaczej do zrobienia.
Jeśli nie będziesz mieć pod górke, nigdy nie dojdziesz na szczyt.