How are gvg chosen?

How are gvg chosen. It seems very random. It's not by ranking my guild (around top 10) regularly play teams outside top 100 or even 200.
It's not by team quality. We regularly Play guilds way below our quality.
It's frustrating we get about 1 gvg that challenges us per season.
They have a range based on your total fans and the range is ±20%. So if my guild has a 25 members and an avg of 140k fans then our match range would be an avg of 112k-168k. Obviously a huge range which results in more mismatches than fair matches. Also, the limited number of top notch guilds makes it even less likely to match with another top notch guild if you are one. Let's say there are 20 of them, guilds can start their search during a 48 hour window, matches are typically made within a few minutes of searching....Very low chance of a good matchup without some planning being done.
Thanks for the explaination black monks. I wish it could be simpler and just be you can only play a guild that is within 100 places of your guild. I would even wait longer for a matchup. Of course it's no guarantee of a top guild but would reduce the amount of mismatched gvg.