Ok I have to speak a word of power, introducing randomness into the bots Dna execution is a really bad bad BAD idea.
As it is, we often are not even able to understand what evolved code does because of all the junk that does nothing making the whole thing unpredictable is a serious desgn question that should not be made so lightly.
Also, do not try to mimick the physical mechansim of real life so closely , darwin bots is a world of its own and its needs its own solution.
Regarding diploidity, of course it has many functions (exspecially securing the diversity of the genepoool to some degree)but basically its the easiest way to mix genes without changing the total number of genes. You can not split and remix a haploid Dna set with another that easily in real life right?
Also diploid chromosomes are running parallel I think , this can be done because it just changes the amount of proteins etc that are made, but if we execute a gene twice and inc a memory location twice instead of one time, this can totally screw up something, which is why we have the problem of deciding externally which genes would be dominant ,executed etc.(Well its not that great aproblem, but still to point out the differences)
Well, I have tought a little bit of the general idea of sexual reproduction and the whole concept is I think to pass on genes that have useful mutations independant from the other genes, which then are tested by evolution for their usefullness.
That said we look for solution that do not produce a large number of "bad gene" childs so I think we should either stick on a scale of complete genes being shuffled or try not to exchange Dna, but rather to exchange
Mutations which are different.( this might still need some checkup of "compatibility" before reproduction, but maybe the bots would just decide that themselves?)