eu uso
macaddr=$(echo $FQDN|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:::::/')
O benefício deste método, em um número completamente aleatório, é que é possível reproduzir de forma confiável o endereço MAC com base no FQDN da máquina, o que acho útil às vezes. O 02
para o primeiro octeto apenas define o bit "atribuído localmente", o que torna óbvio que não é um endereço MAC fornecido pelo fornecedor e garante que você não colidirá com o endereço MAC de uma NIC real.
Se você precisar gerar vários endereços MAC por host, usei para concatenar o FQDN com o nome da ponte para conectar a interface; isso fez um bom trabalho de espalhar as coisas para diferentes NICs.