Алгоритм от текущих времени - можно будет подобрать. Добавлять к значению номер - лишний запрос к БД. Есть ли ещё какие-то методы сделать случайную последовательность символов с гарантией уникальности?
Код (Text): round(mt_rand(mt_rand(0, 10000), mt_rand(10000, 90000))*time()/M_PI); Теперь, число зависит непосредственно от делителя. Я выбрал в качестве делителя константу Пи, чем выше число, тем, соответственно, меньше цифр в результате. Знаки после запятой округляем. Если нужен более сложный алгоритм, записываем сгенерированные данные и на их основании находим делитель.
Код (Text): $RandomText = ''; for($I=0; $I<8; $I++) { $fRand = rand(1,3); if($fRand == 1) $RandomText .= chr(rand(65,90)); if($fRand == 2) $RandomText .= chr(rand(97,122)); if($fRand == 3) $RandomText .= chr(rand(48,57)); } Что то такое?