Smarter testing strategies! After all these years! Glorious! But what is fuzzing? It sounds very cute, but for a long time I only had a very fuzzy conception of it: "throw a bunch of random crap at your program and see if it breaks".
It turns out, that's not a terrible explanation, but the devil is in the detail. What does "random" mean, and how do you tell when something is broken? You can't rely on the potentially buggy program to tell you!
To do better than "stick monkeys at a typewriter and look for crashes",