Nee, je algoritme is niet schaalbaar. Wat ik eerder heb gedaan, is nummers serieel uitgeven (elke keer +1) en ze vervolgens door een XOR-bewerking leiden om de bits door elkaar te halen, waardoor ik schijnbaar willekeurige getallen krijg. Natuurlijk zijn ze niet echt willekeurig, maar ze zien er zo uit in de ogen van gebruikers.
[Bewerken] Aanvullende informatie
De logica van dit algoritme gaat als volgt:je gebruikt een bekende reeks om unieke getallen te genereren en dan manipuleer je ze deterministisch, zodat ze er niet meer serieel uitzien. De algemene oplossing is om een of andere vorm van codering te gebruiken, wat in mijn geval een XOR-flipflop was, omdat het zo snel mogelijk is en het voldoet aan de garantie dat getallen nooit botsen.
U kunt echter andere vormen van codering gebruiken, als u nog meer willekeurig uitziende getallen wilt, boven snelheid (u hoeft bijvoorbeeld niet veel tekens tegelijk te genereren). Het belangrijkste punt bij het kiezen van een coderingsalgoritme is "de garantie dat getallen nooit met elkaar in botsing komen". En een manier om te bewijzen of een encryptie-algoritme aan deze garantie kan voldoen, is door te controleren of zowel het oorspronkelijke getal als het resultaat van de encryptie hetzelfde aantal bits hebben, en dat het algoritme omkeerbaar is (bijectie).
[Met dank aan Adam Liss &CesarB voor uitbreiding van de oplossing]