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.

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