PaulS is right, it's super easy, as a matter of fact, the example for the Keyboard.press() method does nearly exactly what you're looking for:http://arduino.cc/en/Reference/KeyboardPress
Regarding which Arduino (from the Keyboard library reference):
The keyboard functions enable a Leonardo, Micro, or Due to send keystrokes to an attached computer.
I've come across a couple projects that accomplish this with an UNO:http://www.practicalarduino.com/projects/virtual-usb-keyboard
But it looks pretty hacky/volatile, this is because the Uno delegates the USB side of the board to a custom programmed Atmega16U2 (which, with some effort, can be overwritten), where as the above Arduinos use the built-in USB capability of the main processor to communicate natively to other USB devices.