I've been learning go and this is my first CLI app. There's definitely some YAGNI in this..
cough emoji
cough..but supporting unicode/emoji led me to expressing the charsets as an interface instead of as a string or array of characters, which are so nice and so lightweight in go.
brew install leighmcculloch/randstr/randstr
or
go install github.com/leighmcculloch/randstr/cmd/randstr
Feedback welcome, especially on project structure and best ways to distribute go CLIs.