I am necro-ing this thread to post some additional clarifications that might save someone else (or future me) some head scratching.
First of all, I was mistaken above about the algorithm selecting a system first, then selecting a site in that system. That logic was in VB6, but not in C#.
In C#, all qualifying sites in all systems are ranked by their score (per above), and the selection is made from that list.
Second, Steve
clarified later that:
The program orders the list of potential CMC sites by score and then goes through the list with a 1/3rd chance for each to be selected. Therefore the best option is not always selected and in a system with only a small number of possible sites, none of them may be selected. You are more likely to see CMC appear in a system with more potential options.
So, don't expect deterministic results.
In fact, there's a ~44% chance that the top two sites will be skipped over.
And a ~20% chance that the top four sites will be skipped over.