First, get a addon that lets you see the rarity of the enemies you face
Battle Pet - Quality Notifier - This is the one I use.
If you dont want to use a addon, here is the macro:
Code:
/run hooksecurefunc("PlaySoundKitID", function(Q) if Q==31584 then for i=1,C_PetBattles.GetNumPets(2) do SELECTED_CHAT_FRAME:AddMessage(C_PetBattles.GetName(2,i).." - ".._G["BATTLE_PET_BREED_QUALITY"..C_PetBattles.GetBreedQuality(2,i)]) end end end)
Now, you will be running around fighting pets until the quality notifier tells you that you found a rare.
(It will take a while, so be patient. If you dont find a rare, forfeit the match and try again.)
I found a Rare, what now!?
Now, you will need either a friend or a 2nd account (for tradechat selling) or you can try your luck in guild / general.
When you find someone that is willing to buy the rare you found, have him trade the gold over to your friend / 2nd account, now you will wait for him to get to the character in battle and Alt+F4 on that character and log back in. (Resets battle, pet qualities stays the same)
There is a few pets that is rare to find even when they are gray (Flayer Youngling) is one of those, if you find a rare of that you could possibly sell it for up to 20k or more, depending on the demand for it.
TLDR;
Have pet quality addon
Find rare
Find buyer
Alt+F4 battle
Buyer fights rare