in case you're not yet about to use Steam-Elo for it, maybe consider this for an intermin thingy:
playerRating = 104 - int(5200 / (44 + int(armylevelCHAOS^1.3) + .. + int(armylevelTYRANIDS ^ 1.3))
to get a 'rating' value from 0..100 for a player, trying to guess his pseudo-skill (yeah yeah, army exp).
Reasoning: High army levels are increasingly difficult to obtain. However, at some point after playing for a long time your learning curve starts flattening a lot again.
Then match players whose numbers are as close as possible to form a team, and match teams whose average numbers match as close as possible, likewise. Reasoning: It doesn't really matter whether a much stronger team sometimes stomps another team. The much greater disruption is caused when you have large individual strength differences actually mixed _within the same team_.