<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def random_state(self):
 """ Generates a random state of the Markov Chain. Return Type: List of namedtuples, representing a random assignment to all variables of the model. Examples: --------- [State('diff', 2), State('intel', 1)] """

        return [State(var, np.random.randint(self.cardinalities[var])) for var in self.variables]