S'il n'y a que 10 à 30 % des numéros déjà pris - alors cela signifie que seulement 10 à 30 % des requêtes seront effectuées au moins deux fois. Ce qui n'est pas du tout un gros problème de performances.
Sinon - créez simplement une table de liste de numéros à 5 chiffres (seulement 100 000 lignes) et supprimez tout ce qui existe. Lorsque vous avez besoin d'un autre nombre aléatoire, choisissez-en un et supprimez-le.