Depending on the character's experience, I reference what % chance of success they have. For instance, Diego had a 50% chance of casting a full bodied patronus because he's not in DADA or Occlumency.
Then I have a little RNG, it gives me a number between 1-100. If the number falls within the character's % chance range, they succeed. Otherwise, they don't. It's a really simple rng this time around. :) However, even if your character fails, they can still get an idea of what animal they were probably going to end up with, even if it's vague. So... Diego can say with some certainty he has a large parrot.
On the other hand, any characters in Occlumency are automatically successful, and are assumed to have mastered this spell already.