Offhand, I think it could be useful for ensuring your regex is doing what you want it to do. Perhaps I'd write a regex to validate a xxx-xxx-xxxx telephone number:
\d{3}\-\d{3}\-\d{3}
Oops! I made a typo! That last 3 should be a 4. If I were tired, I could very easily see myself doing something like this. If I could put it into a tool and see 100 things which match it, I'd see very quickly that I messed something up.
"Regular expressions are used in every language, every programmer is familiar with them. Regex can be used to easily express complex strings. What better way to generate a random string than with a tool you can easily use to express the string any way you want?"
An example where this is useful (I guess) is generating data for tests. You can easily define an email regexp to generate random "valid" values for each model.
For testing you'd want to generate strings non-uniformly, i.e. you want to hit edge cases rather than test 1 billion similar 20 character length e-mails.
That's true. What I meant was that this tool is good to support testing the same way factories work: generating random valid emails, phones, addresses, etc., for each record.
That's true if your validation exists in a vacuum. But if you have a picky black box backend and the input validation you quickly made up allows strings that the backend chokes on, this is the way to validate the validation regex.