To generate text using Markov chains with NLTK utilities, you can create a simple Markov chain model based on n-grams, and then generate text by selecting the next word based on the previous word(s). Here is the code snippet you can refer to:

In the above code, we are using the following:
- Bigrams: Create bigrams from the text, representing pairs of consecutive words.
- Frequency Distribution: Calculate the frequency of each bigram to model the Markov chain.
- Text Generation: Start with a random word and generate the next word based on the bigram distribution, repeating the process to create a sequence of words.
The output of the above code would be:

Hence, this example generates text based on bigrams, where each word's generation depends on the preceding word. You can adjust the n-gram size and corpus to develop more complex text.