I applaud @LieRyan's answer of never putting sensitive information on a hard drive in plaintext in the first place. Writing straight to an encrypted file, or better using full-disk encryption are far more reliable than shredding.
In addition, I want to add a few notes about modern hard drives being clever:
1. The idea of overwriting the data 16 times is wildly outdated. For magnetic drives manufactured after 2006, just zeroing it out once is sufficient (wikipedia). The problem was that in the 70's there was unused space between write bands where magnetic fields could "leak out" and be recovered. Now-a-days the bands are so tight together that nothing can be recovered from in between.
2. Wear Leveling: As pointed out by @LieRyan, SSD drives, Flash drives, etc do all sorts of complicated wear leveling to spread the writes around the disk (wikipedia). If you perform two sequential writes to the same file, you are guaranteed that they will not be to the same physical location.
3. Hard drive buffers (caches): All modern hard drives contain some cache memory used to buffer frequently accessed files (wikipedia). This means (A) there is the possibility that copies of your sensitive data will persist in the cache after the write has been completed. An attacker who has enough physical access to recover deleted data, can likely also recover the cache if they act quickly. (B) Let's say you do write 16 random patterns - flushing stdout each time -- these operations will all be done in the HDD's cache and only the final result actually written to magnetic disk, but because of (1) above, that's actually ok.
4. Hybrid drives: These fancy modern drives place small amounts SSD memory inside traditional magnetic drives to act as larger caches. Here you get the worst of both worlds as far as shredding is concerned: there are > 2 copies of your data due to wear leveling, AND it doesn't go away when you turn off the power.
The bottom line is that shredding wears out your drives faster (esp. SSD or Flash), but doesn't always delete your data. Shredding can certainly be done (many corporations and governments do), but it takes more than software; you have to be very careful about which hardware you buy and how you configure your operating system. If this is something that you're really worried about, then the better approach is to treat your hard drive as adversarial and not write sensitive things to it in plaintext, use full-disk encryption.