implementation of uniform crossover operator