code: func Mutate(g1, g2 *IGenome) (IGenome, IGenome) {
  
  	g1BitsOrig := (*g1).GetBits()
  	g1Bits := g1BitsOrig.CreateCopy()
  	randomBit := rand.Intn(g1Bits.GetSize())
  	g1Bits.Set(randomBit, 1-g1Bits.Get(randomBit))
  
  	return NewGenome(g1Bits), NewGenome(*(*g2).GetBits())
  }
docs: // Mutate -
  // Accepts 2 genomes and mutates a single bit in the first to create a new
  // very slightly different genome
  // i.e.
  // input genomes of:
  // 000000 and 111111
  // could produce output genomes of:
  // 001000 and 111111