I understand your frustration, and you're not alone in this unfair matchup system.
Queuing (3) level 5s, and to find out you're going to face (1) level 10, and (2) level 3s is flat out irritating.
I always felt (I could be way off base here) that the system totals the levels up, and pairs you accordingly with someone with a similar total. So, for the example above:
You: 3 level 5s = 15
Opponent: 10+3+3 = 16
So, 15 levels vs 16 levels... that's fair, right? Yeah, right...
When faced with this, I usually drop one pet and add another one back in that is 2 levels higher than the one I swapped out. I keep this up until I get queued with opponents with more realistic chance of winning. (or atleast making it close)