implementation of double-swap mutation operator