Nej din algoritme er ikke skalerbar. Det, jeg har gjort før, er at udstede numre serielt (+1 hver gang) og derefter sende dem gennem en XOR-operation for at blande bitsene og dermed give mig et tilsyneladende tilfældigt tal. Selvfølgelig er de ikke rigtig tilfældige, men de ser sådan ud for brugernes øjne.
[Rediger] Yderligere oplysninger
Denne algoritmes logik er sådan, at du bruger en kendt sekvens til at generere unikke numre, og derefter manipulerer du dem deterministisk, så de ikke ser serielle længere ud. Den generelle løsning er at bruge en eller anden form for kryptering, som i mit tilfælde var en XOR flipflop, fordi den er så hurtig, som den kan blive, og den opfylder garantien for, at tal aldrig vil kollidere.
Du kan dog bruge andre former for kryptering, hvis du vil foretrække endnu flere tilfældige tal frem for hastighed (f.eks. at du ikke behøver at generere mange id ad gangen). Nu er det vigtige punkt i at vælge en krypteringsalgoritme "garantien for, at tal aldrig vil kollidere". Og en måde at bevise, om en krypteringsalgoritme kan opfylde denne garanti på, er at kontrollere, om både det oprindelige nummer og resultatet af krypteringen har det samme antal bits, og at algoritmen er reversibel (bijection).
[Tak til Adam Liss &CesarB for at uddybe løsningen]