I looked into the game's code (sorry). It seemed like a Fairy uses Prank only if it's damaged (sorry again if it's incorrect).
Prank has 3 different (seemingly random) outcomes, but in my playthrough I got Frog TF a few times in a row, then Cow TF a few times in a row. Maybe some mechanic to reduce this behavior of randomness could help. The easiest I can think of is to rotate between those outcomes (e.g. Frog, then Cow, then Pig, then Frog again).