Basado en el ejemplo anterior que hice pero esta vez totalmente al azar:
Ejemplo: 12B-XFR-034-Q34
ó
Ejemplo: 1A2B-XDFR-0934-Q3R46
Simplemente es cambiar el hash por otro tipo de funcion como str_shuffle() que te mencionaba mas arriba
PERSONALIZABLE:
Simplemente eliges cuantos segmentos y de que longitud cada uno para hacer por ejemplo algo como X6A7-P1ZV-MTHW
Código PHP:
<?php
$segmentos = 3;
$long_segm = 4;
echo implode(str_split(substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'),0,$segmentos*$long_segm),$long_segm),'-');