Вы могли бы начать с разделения вашего шаблона на массив цифр, используя str_split()
:
$pattern = '123456';
$digits = str_split($pattern);
Затем вы можете использовать shuffle()
для этого массива, поэтому его элементы расположены в случайном порядке:
shuffle($digits);
И, наконец, вы можете implode()
, чтобы рандомизировать массив обратно в строку:
$result = implode('', $digits);
Сброс содержимого этой переменной:
var_dump($result);
Вы получите результаты, подобные этим:
string(6) "645132"
string(6) "462513"
string(6) "542316"
Всегда шесть цифр, всегда указанные вами цифры; и никто не использовал больше раз, чем указано в шаблоне.