The random part is detabable, in my point of view totally random can be avoided by giving percentages in the software.
An example :
-Stage 5: TT (random between all TT stages available -flat, hills, mountain and mixed)
-Stage 5: TT (semi-random with these percentages; 50%
chance flat TT, 25% hills TT, 15% mountain TT, other 10% distrubed over other TTs)
Just an example, so the percentages can be different. I did not think about the percentages thoroughly, it is just to show that in this way every rare race can be on the NT calendar sooner or later.
Also one standard flat TT race every season is fine by my (like it is now, also in CFF2 and also on the regular calendar, WC TT).
And for example in another NT stage 50% is distrubed over other kinds of TTs, and 50% is distrubed over another kind of race type.
The percentages are chances, just like picking red(50%)or black(also 50%) on the roulette table.
So it is possible it will be red for a few times in a row.
My "roulette table" of the CFF NT races would have many colours. And in every NT stage different colours. Because of the ranking/arrangement of NT races, like for example Ophiuko posted. With the addition of every kind of race and the rare ones get a very low chance percentage.