Generates a random state of the Markov Chain.

        Return Type:
        ------------
        List of namedtuples, representing a random assignment to all variables of the model.

        Examples:
        ---------
        >>> from pgmpy.models import MarkovChain as MC
        >>> model = MC(['intel', 'diff'], [2, 3])
        >>> model.random_state()
        [State('diff', 2), State('intel', 1)]

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:
        ---------
        >>> from pgmpy.models import MarkovChain as MC
        >>> model = MC(['intel', 'diff'], [2, 3])
        >>> model.random_state()
        [State('diff', 2), State('intel', 1)]
        """
        return [State(var, np.random.randint(self.cardinalities[var])) for var in self.variables]