Thank you for using the program.
There is a newer version in the works, but currently I'm holding it until the new SR2011 rules are finalized.
As to why some players were paired with players of the same faction...
That might be intentional.
This is the logic behind the pairings is as follows:
1) A random player is chosen to be labeled as Player A.
You have higher chance to be Player A, the higher your tournament score is.
Meaning players with higher scores will have priority in their match pairings.
ex: if there are multiple people ranked #1 (5 ppl won their first round), these ppl get to choose their pairing before everyone else (b/c they have a higher rank), but the order who gets the choice first is determined randomly amongst these players.
2) After Player A is determined from Step 1, remove players which Player A has played previously from the list of possible pairings.
3) The program looks for other players of similar scores and lists up candidates for pairing.
4) Flag players
a. Flag players which have played on tables which Player A has played on
b. Flag players which play the same faction as Player A
c. Flag players which are from the same Group has Player A
d. * Not implemented in the downloadable version, but will be in the new version.
Look at Player A's history and see what factions he has played against and flag players of those factions. Factions that he has played multiple times will be marked harsher.
5) From the list of possible opponents determined in Step 3, list up the players who have been flagged the least in Step 4.
6) If there are multiple good candidates, then choose a candidate for pairing randomly out the the list of best candidates (determined in previous Step).
The players who are playing the same faction are likely players who had a bad random draw at Step 1 compared to other players of the similar rank, or at Step 4 the program decided that this player he's paired with is a better pairing due to the other factors in Step 4. The table matching consideration is weight heavier than faction matching consideration in my program.
I hope that made sense.