Com uma profundidade fixa da estrutura de diretórios (por sua descrição, um diretório com subdiretórios com arquivos), você poderia fazer algo como:
for subsubdir in "$directory"/*/*/
do
find "$subsubdir" -type f | shuf -n 2
done | shuf
O% final% co_de na suposição de que você deseja que a lista seja randomizada como um todo e não classificada por diretório. Caso contrário, basta soltá-lo.
Se você espera novas linhas nos seus nomes de arquivos, pode alternar para a lista de arquivos com terminação zero.