My version features an un-munging mode and the use of procs and blocks to keep DRY. It won't shuffle letters, but it will leave numbers and underscores alone, too. http://www.dave.burt.id.au/ruby/text_munger.rb