When I first started doing pet battles I would capture pets at random and randomly get grey through blue quality pets.
It became tedious capturing multiple pets in the hope that I would get a rare blue quality pet.
I realized there was an easy way to capture the rare pets and ignore (kill) the low quality pets.
Simply look at the stats of the critters you are battling.
The rare pets will have significantly better stats. More HP and better attack/defense scores.
If you are battling a pet and it has 100 more hit points than the others you fight, then capture that one and it will likely be either a green or blue quality pet.
If it has low HP or atttack/defense scores just kill and dont waste your time capturing it as it will be a grey or white quality pet.
This is probably working as intented and not an exploit, because once you know it seems so obvious.
However this fact may be missed by new players to battle pets.