Use a opção --line-buffered para grep (e também se livre do cat inútil):
hexdump /dev/urandom | grep --line-buffered -i "ffff f" > random
Desta forma, a saída não é armazenada em buffer, mas todas as linhas são colocadas em random imediatamente. Também recomendaria usar tee em seu canal para ver quantas linhas foram produzidas:
hexdump /dev/urandom | grep --line-buffered -i "ffff f" | tee random