com gnu sed/shuf :
sed '1b;s/^*/\x0*/' infile | shuf -zn 5 | tr -d 'sed '1b;s/^*/\x0*/' infile | shuf -zn 5 | tr -d '%pre%0'
0'
Isso transforma a entrada em registros separados nulos, ou seja, em cada linha que começa com * (exceto a primeira), adiciona um caracter antes que a * use shuf com --zero-terminated para extrair cinco registros aleatórios e tr para excluir esses caracteres nulos.