I’ve used this and variations of this script to generate random passwords for a long time, I recently re-coded this in Python because, well, Python!

# SRJ 2017-02-06
cat <<EOF
| In OpenOffice, format a page as 'User', Landscape, 3.37"x2.13", with .15" |
|  margins on all four sides. Select the text below and paste it in a new   |
|  document, then Select All, set font as Ubuntu Mono 10pt Bold. It should  |
|  just fill out two pages.                                                 |
|                                                                           |
| Print to the XPS Card Printer, in Duplex Mode, short edge. The printer    |
|  will print one side, then instruct you to reinsert the card. Push it     |
|  back in at the bottom of the stack, flipping it over so the side that    |
|  just printed is on the bottom. If you flip long edges to print, you'll   |
|  flip long edges to read and vice versa.                                  |
|                                                                           |
|      Press the blinking green button and side two should print.           |
|          This card has no upper case Oh or lower case El.                 |
# The {A..Z} used below is a bashism that returns a list of all items 
# between the first and last character, in ASCII order, {A..Z} returns;
#  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
# echo {1..15}
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
for Row in {A..Z};
echo -n "${Row}"
for Column in {1..3};
  echo -n " "
  for Character in {1..13};
     echo -n "${Char:$(($RANDOM%${Count})):1}"
  echo ""