Write a function that will randomly upper and lower characters in a string - `randomCase()` (`random_case()` for Python).

A few examples:

```
randomCase("Lorem ipsum dolor sit amet, consectetur adipiscing elit") == "lOReM ipSum DOloR SiT AmeT, cOnsEcTEtuR aDiPiSciNG eLIt"

randomCase("Donec eleifend cursus lobortis") == "DONeC ElEifEnD CuRsuS LoBoRTIs"
```

Note: this function will work within the basic ASCII character set to make this kata easier - so no need to make the function multibyte safe.

Difficulty: introductory

Starter code:

def random_case(x):
	

Solutions:
import random

def random_case(x):
    return "".join([random.choice([c.lower(), c.upper()]) for c in x])

In [20]: def random_case(x): return "".join([choice([c.lower(), c.upper()]) for c in x])  # That one                   
In [21]: %timeit random_case(s)                                                                                                 
834 ms ± 6.79 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [22]: def random_case(x): return "".join([choice([str.lower, str.upper])(c) for c in x])  # Mine                             
In [23]: %timeit random_case(s)                                                                                             
860 ms ± 3.77 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [26]: def random_case(x): return "".join([str.lower, str.upper][randrange(2)](c) for c in x)  # Blind4Basics
In [27]: %timeit random_case(s)                                                                                                  
931 ms ± 3.77 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)


In [28]: UP_LOW = (str.upper, str.lower)
In [29]: def random_case(x): return ''.join(choice(UP_LOW)(c) for c in x)
In [30]: %timeit random_case(s)
723 ms ± 14 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)


from random import choice

UP_LOW = (str.upper, str.lower)


def random_case(strng):
    return ''.join(choice(UP_LOW)(a) for a in strng)


import random

def random_case(x):
    result = ""
    
    for c in x:
        if random.randint(0, 1) == 1:
            result += c.upper()
        else:
            result += c.lower()
    
    return result

from random import choice


def random_case(x):
    cases = (str.lower, str.upper)
    return ''.join(choice(cases)(char) for char in x)

import random

def random_case(s):
    return ''.join(random.choice([x.lower(), x.upper()]) for x in s)

import random
def random_case(x):
    return "".join(y.lower() if bool(random.getrandbits(1)) else y.upper() for y in x)


import random

def random_case(string):
    return "".join(random.choice([str.lower, str.upper])(c) for c in string)

from random import choice
def random_case(x):
    final = ''
    for i in x:
        do = choice(('l', 'u'))
        final += (i.lower() if do == 'l' else i.upper())
    return final

from random import choice 

LOWER_UPPER = (str.lower, str.upper)

def random_case(text):
    return ''.join(choice(LOWER_UPPER)(c) for c in text)

from random import choice

def random_case(text):
    return ''.join(choice([c.upper(), c.lower()]) for c in text)