docs: def randomise_proposed_value(self):
          """Creates a randomly the proposed value.
  
          Raises
          ------
          TypeError
              Raised if this method is called on a static value.
          TypeError
              Raised if the parameter type is unknown.
          """
          if self.parameter_type is MMCParameterType.UNIFORM_DIST:
              (a, b) = self.static_dist_or_list
              self.proposed_value = random.uniform(a, b)
          elif self.parameter_type is MMCParameterType.NORMAL_DIST:
              (mu, sigma) = self.static_dist_or_list
              self.proposed_value = random.normalvariate(mu, sigma)
          elif self.parameter_type is MMCParameterType.DISCRETE_RANGE:
              (min_v, max_v, step) = self.static_dist_or_list
              self.proposed_value = random.choice(
                  numpy.arange(min_v, max_v, step))
          elif self.parameter_type is MMCParameterType.LIST:
              self.proposed_value = random.choice(self.static_dist_or_list)
          elif self.parameter_type is MMCParameterType.STATIC_VALUE:
              raise TypeError('This value is static, it cannot be mutated.')
          else:
              raise TypeError(
                  'Cannot randomise this parameter, unknown parameter type.')
          return