<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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