Not sure why some have downvoted me. It's easy to verify.
time dd if=/dev/zero of=file1.bin bs=1M count=600
600+0 records in
600+0 records out
629145600 bytes (629 MB) copied, 1.57948 s, 398 MB/s
real 0m1.651s
user 0m0.004s
sys 0m0.688s
time dd if=/dev/urandom of=file2.bin bs=1M count=600
600+0 records in
600+0 records out
629145600 bytes (629 MB) copied, 37.7828 s, 16.7 MB/s
real 0m37.786s
user 0m0.004s
sys 0m37.784sI do wonder what machine you used that's 20 times slower than a 4 generation old i5.
openssl enc -aes-256-cbc -in /dev/zero -out /dev/sdX
This post appears to have the reason:
https://superuser.com/questions/359599/why-is-my-dev-random-...
(This raises the question of why using openssl (per other comment) makes it faster.)
An all zeroes pattern would look nothing like all zeroes on the media. Modern read/write channels use a scrambler, RLL, and LDPC, which scrambles the data, limits the length of long magnets (since the heads don't like DC signals,) and then parity bits. From a signal processing perspective, writing random data will not look much different from all zeros.
One thing to keep in mind, however; if you tell the drive to write a large range of LBAs to the same pattern, depending on the firmware, it might only write one physical sector and point every LBA in that range to that physical sector. So now your data only has the first sector overwritten. If someone hacks the firmware in a way that allows reading of physical sectors, they can get your data.
That said I've typically followed any overwrites, random or zero-based, with use of ATA secure erase commands, which might be equally bad.
Also keep in mind that with SSDs that have significant smarts for compression, trim, deduplication, benchmark cheating, minimizing write amplification, and related. Writing a pseudorandom sequence is more likely to actually overwrite almost 100% of the disk. Sure bad sectors that are remapped won't be, but the rest should.
Even better if you just use full disk encryption and throw away the key. Also the "secure erase" functionality is a good start, but if you aren't the trusting type it's best to wipe then overwrite.