Each of the replicate populations runs the same discrete-generation Wright-Fisher model independently, all starting at p=0.5. Every generation: selection moves p toward the fitter genotype, mutation nudges p toward q at rate μ, and — if drift is on — the next generation's 2N alleles are drawn by resampling from the updated frequency, so small populations wander randomly while large ones track the deterministic selection curve almost exactly.
w̄ = p²w_AA + 2pq·w_Aa + q²w_aa
p' = (p²w_AA + pq·w_Aa) / w̄
p' = p'(1−μ) + q·μ
drift: p_next = Binomial(2N, p') / 2N
Running many replicates side by side turns fixation probability — a statistical statement about what tends to happen — into something you can watch directly: count how many of the faint lines end up at the top (fixed for A) versus the bottom (lost) versus still spread out in between.