<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def text(min_size, max_size):
 """ Generates a random text, consisting of first names, last names, colors, stuffs, adjectives, verbs, and punctuation marks. :param min_size: minimum amount of words to generate. Text will contain 'minSize' words if 'maxSize' is omitted. :param max_size: (optional) maximum amount of words to generate. :return: a random text. """

        max_size = max_size if max_size != None else min_size
        size = RandomInteger.next_integer(min_size, max_size)

        result = ""
        result += random.choice(_all_words)
        
        while len(result) < size:
            next = random.choice(_all_words)
            if RandomBoolean.chance(4, 6):
                next = " " + next.lower()
            elif RandomBoolean.chance(2, 5):
                next = random.choice(":,-") + next.lower()
            elif RandomBoolean.chance(3, 5):
                next = random.choice(":,-") + " " + next.lower()
            else:
                next = random.choice(".!?") + " " + next

            result += next

        return result