Sure! Here is a test case generator for the given problem statement:

```python
import random

def is_valid(N, M, K):
    return (N + M - 1) % (K - 1) == 0

def tcgen():
    N = random.randint(1, 2000)
    M = random.randint(1, 2000)
    K = random.randint(2, 2000)
    
    while not is_valid(N, M, K):
        N = random.randint(1, 2000)
        M = random.randint(1, 2000)
        K = random.randint(2, 2000)
    
    return N, M, K

# Generate a test case
N, M, K = tcgen()
print(N, M, K)
```

### Explanation:

1. **Import Random Module**: We use the `random` module to generate random values.
2. **Validation Function**: The function `is_valid(N, M, K)` ensures that the condition \(N + M - 1\) is divisible by \(K - 1\).
3. **Test Case Generator (tcgen)**:
    - Randomly generate values for \(N\) and \(M\) within the range [1, 2000].
    - Randomly generate a value for \(K\) within the range [2, 2000].
    - Check if the generated values satisfy the condition mentioned in the problem statement. If not, regenerate the values until the condition is met.
4. **Generate and Print**: Finally, the function generates a valid test case and prints it.

This generator produces a random valid test case for the problem statement. You can run this generator multiple times to get different test cases for thorough testing.