To write a test case generator for the "Colorful Drink" problem, we need to generate valid inputs within the specified constraints. The generator will randomize the number of prepared liquids, their properties (colors and densities), and the requested color layers.

Here's the Python code for the test case generator:

```python
import random
import string

def generate_random_color():
    length = random.randint(1, 20)
    return ''.join(random.choices(string.ascii_lowercase, k=length))

def generate_test_case():
    # N: number of prepared colored liquids
    N = random.randint(1, 10**5)
    
    # Generating N prepared colored liquids
    prepared_liquids = []
    for _ in range(N):
        color = generate_random_color()
        density = random.randint(1, 10**5)
        prepared_liquids.append((color, density))
    
    # M: number of color layers in the drink request
    M = random.randint(1, 10**5)
    
    # Generating M color layers for the drink request
    drink_request = []
    for _ in range(M):
        color = generate_random_color()
        drink_request.append(color)
    
    # Formatting the test case as a string
    test_case = f"{N}\n"
    for color, density in prepared_liquids:
        test_case += f"{color} {density}\n"
    test_case += f"{M}\n"
    for color in drink_request:
        test_case += f"{color}\n"
    
    return test_case

# Example usage:
print(generate_test_case())
```

### Explanation
1. **`generate_random_color`**: This function generates a random string of lowercase letters with a length between 1 and 20.
2. **`generate_test_case`**: This function generates a complete test case:
   - It selects a random number \(N\) for the count of prepared liquids.
   - It then generates \(N\) colored liquids, each with a random color and a random density.
   - It also selects a random number \(M\) for the requested color layers.
   - It generates \(M\) requested color layers, each with a random color.
3. **Formatting**: The generated data is formatted into the required input format as a string.

### Notes
- This generator creates random test cases within the constraints. For specific edge cases or particular scenarios, you might want to create additional, more directed test cases manually.
- The function `generate_test_case` prints out a test case example in the required format. You can call this function multiple times to generate multiple test cases.