I plan on using a keyboard with only 16 keys to be able to input all 26 letters and 0-9. Is there a program out there already that lets you have a button (like a caps lock) that switches to a different set of outputs with the same keys?
Input to what? If it's to your Arduino, then you can map the keys to different sets of characters in your sketch. If the keyboard isn't input to the Arduino, then what is it input to?