Uses 'with' statement when opening files to guarantee files are closed even when the process is interrupted.
Uses import random for namespace cleanliness Uses list instead of string for 'chars' variable in order to shuffle, increases randomness Instead of string formatting, uses string concatenation because (currently) it is simpler