About the article "10 Ways to Destroy an Arduino"

ma_hty:

KeithRB:
You need a separate power supply / driver that is controlled by the arduino. Could be as simple as a logic-level MOSFET for each LED.

Can I use shift registers (e.g. 74HC595) instead to solve the same problem?

For many shift registers you'd only be able to fully power one 0.3 to 0.5 mm LED per output pin of the device. That's because they will have a maximum continuous output current of only 20 to 40 mA. In the case you are asking about that might be sufficient; but a transistor used as a switch could power arrays of multiple LEDs, or other much higher current loads.

Edit: And some of them, like the 74HC595, have a maximum input current of around ~75 mA. So you wouldn't be able to use the 74HC595 if you needed more than two LEDs lit at the same time.