Clean up swap! removing anonymous function.

Also move call to generate-name to let binding to ensure it's only
called once even if swap! calls assoc more that once.
Simplify logic to create a random character.

It's longer but cleaner.