I used a tool called netem that runs on linux. It allows you to increase packet loss at a given percentage, introduce delays within packets and handle packet re-ordering. Basically it's designed to emulate different networks.
All you need to get it up and running is a spare machine to install Linux on with a couple of Ethernet cards. Hook it up as a bridge, and run netem between them. Should be quite simple to do. I used it for my University project having no Linux experience, but I've probably still got all the setup instructions somewhere.