Supondo que você esteja executando o Linux, você deseja ordenar aleatoriamente todos os arquivos no diretório atual e que nenhum nome de arquivo contenha uma nova linha:
printf '%s\n' * | shuf | nl -n rz -s - |
while IFS= read -r name; do
mv -- "${name#*-}" "$name"
done
O comando printf imprime os nomes dos arquivos, um por linha. shuf aplica uma permutação aleatória às linhas de entrada. nl adiciona prefixos como 000001- , 000002- , etc. a cada linha. O loop while itera em todas as linhas. O comando mv renomeia foo.mp3 para 000001-foo.mp3 , etc.