diff --git a/pints/_mcmc/_differential_evolution.py b/pints/_mcmc/_differential_evolution.py index abe6f2b67..014d5b97e 100644 --- a/pints/_mcmc/_differential_evolution.py +++ b/pints/_mcmc/_differential_evolution.py @@ -293,7 +293,6 @@ def set_hyper_parameters(self, x): def r_draw(i, num_chains): # TODO: Needs a docstring! - r1, r2 = np.random.choice(num_chains, 2, replace=False) - while(r1 == i or r2 == i or r1 == r2): - r1, r2 = np.random.choice(num_chains, 2, replace=False) - return r1, r2 + options = np.arange(n - 1) + options[i:] += 1 + return np.random.choice(options, 2, replace=False)