At first I was going to say this wasn't challenging, then I got stumped on how to count flipped edges in multiple orientations.
Define a reference orientation by assuming every quarter turn flips four edges. To count how many flipped edges there are on, say, the standard ZZ EO reference, "flip" the edges that are on the S slice, "flip" the edges that would be on the S slice on a solved cube, and then count. Repeat this for the M and E slices to get the numbers of misoriented edges on the three possible ZZ EO references.
Code:
from itertools import product
from collections import Counter
combs = Counter(tuple(sorted(a[:4]) + sorted(a[4:8]) + sorted(a[8:])) for a in product(range(3), repeat=12) if 4 == a.count(0) == a.count(1))
orients = [a for a in product(range(2), repeat=12) if sum(a) % 2 == 0]
axis_counts = [0, 0, 0]
for comb in combs:
for orient in orients:
flip_counts = [0, 0, 0]
for i in range(3):
flip_counts[ i] = sum((orient[j] + (j // 4 == i) + (comb[j] == i)) % 2 for j in range(12))
axis_counts[flip_counts.index(min(flip_counts))] += combs[comb]
print(axis_counts)
The output is [37365070, 20481060, 13117070],
id est the first choice gets chosen 52.654% of the time, the second choice 28.862%, and the third choice 18.484%.