They're random but once you encounter a cupid, deal some damage and move on to the next and leave the other players to do the dirty work for you. You'll eventually get a heart once the cupid is killed even if you only dealt 1 damage. Saves some time.