Certainly! Below is a Python function to generate test cases for the given problem statement. The function ensures that generated test cases adhere to the constraints and provide diverse inputs to thoroughly test the solution.

```python
import random
import string

def generate_random_string(length):
    return ''.join(random.choice(string.ascii_lowercase) for _ in range(length))

def tcgen():
    # Length of strings s and t
    len_s = random.randint(1, 5 * 10**5)
    len_t = random.randint(1, 5 * 10**5)
    
    # Generate random strings s and t of the respective lengths
    s = generate_random_string(len_s)
    t = generate_random_string(len_t)
    
    return s, t

# Example usage
s, t = tcgen()
print(f"s: {s}")
print(f"t: {t}")
```

This generator creates random test cases with the following properties:
- `s` and `t` are randomly generated strings consisting of lowercase English letters.
- The lengths of `s` and `t` are within the given constraints, i.e., between 1 and 500,000.

You can use this function to generate multiple test cases for thorough testing of your solution. Here's how you can generate and print a test case:

```python
for _ in range(5):  # Generate 5 test cases for example
    s, t = tcgen()
    print(f"s: {s}")
    print(f"t: {t}")
    print()
```

Note: If you run this code, it will generate very long strings due to the upper limit constraints (up to 500,000 characters). For practical purposes and readability, you might want to limit the string lengths to smaller values while testing the generator function.