code: def mutShuffleIndexes(individual, indpb):
      """Shuffle the attributes of the input individual and return the mutant.
      The *individual* is expected to be a :term:`sequence`. The *indpb* argument is the
      probability of each attribute to be moved. Usually this mutation is applied on
      vector of indices.
  
      :param individual: Individual to be mutated.
      :param indpb: Independent probability for each attribute to be exchanged to
                    another position.
      :returns: A tuple of one individual.
  
      This function uses the :func:`~random.random` and :func:`~random.randint`
      functions from the python base :mod:`random` module.
      """
      size = len(individual)
      for i in range(size):
          if random.random() < indpb:
              swap_indx = random.randint(0, size - 2)
              if swap_indx >= i:
                  swap_indx += 1
              individual[i], individual[swap_indx] = (
                  individual[swap_indx],
                  individual[i],
              )
  
      return (individual,)
  
file_path: deap/deap/tools/mutation.py
imports: import math
  import random
  from itertools import repeat
label_desc: Use image node_id 3 for calling a global function with example usage: mutShuffleIndexes(individual, indpb) and returns: individual