Wenn Sie auf die Spezifikationen von math.random schauen, sehen Sie, dass als Quasi-Zufallszahlengenerator, Bedeutung definiert ist, ist es nicht wirklich zufällig ist. Darüber hinaus wird ein echter Zufallszahlengenerator sicherlich ein Ergebnis irgendwo entlang der Linie wiederholen, ABER, wenn dies geschieht, wird die Reihe, die dieser Wiederholung folgt, nicht der Reihe nach dem ersten Erscheinen der Zahl ähneln.
Nun haben Sie erwähnt, dass Sie dies in einer Datenbank speichern müssen. Warum verwenden Sie keine SEQUENCE (in Oracle; andere DBMS haben unterschiedliche Mechanismen dafür)? Dies garantiert, dass jede verwendete Nummer NIE wiederverwendet wird. Wenn Sie keine Zahlen in einer Sequenz verwenden möchten, können Sie außerdem den Wert dieser Sequenz als Startwert für eine Zufallszahl (oder ein Hashing) verwenden. Dies gibt Ihnen die Einzigartigkeit vieler Ziffern.
http://stackoverflow.com/questions/8012002/create-a-unique-number-with-javascript-time –
Es ist eine Zufallszahl ohne Versprechen der Eindeutigkeit. Das heißt, es wird aus einer Obermenge von 2^53 Werten gewählt, es kann eine Zahl nicht so einfach wiederholen. – gurvinder372
Wie James Donnely hinzugefügt: new Date(). ValueOf() + math.random() garantiert keine Eindeutigkeit, aber macht es ziemlich schwer, wiederholt zu werden – Borjante