private void fixGenome() {
        boolean[] digitMap = new boolean[DIGIT_COUNT];
        for (int i = 0; i < DIGIT_COUNT; ++i) {
            digitMap[numbers[i]] = true;
        }
        
        int unusedDigit = 9;
        boolean[] collisionMap = new boolean[DIGIT_COUNT];
        for (int i = 0; i < DIGIT_COUNT; ++i) {
            if (collisionMap[numbers[i]]) {
                while(digitMap[unusedDigit]) {
                    --unusedDigit;
                }
                
                numbers[i] = unusedDigit;
                digitMap[unusedDigit] = true;
            }
            
            collisionMap[numbers[i]] = true;
        }
        
        calculateFitness();
    }