Moin Ralf,
Ich erzeuge ein Array das die Zahlen 1-1.000.000 enthält. Mit einer Zufallsfunktion nehme ich ein Element, lösche es aus dem Array
Dieser Schritt ist überflüssig :-) Nimm einen Array und speichere, welche Ziffer zwischen 1 und 1000000 du schon hattest. Damit sparst du dir 1.000.000 Operationen zuzüglich zu den teuren Slice-Operationen.
Was meint Ihr dazu?
Geht das auch eleganter?
Ich an deiner Stelle würde einen UNIQUE-Index über EAN legen und schlicht solange mit einem Zufallsgenerator eine Zufallszahl (innerhalb eines gewissen Wertebereichs) erzeugen und versuchen den Datensatz einzufügen, bis das einfügen nicht mehr an dem UNIQUE-Index scheitert. Damit hast du eine eindeutige, nicht fortlaufende Ziffer, das ganze frei von race conditions und Kollisionen.
LG,
CK