Do you have a way to reset the data once the test is run (if this is even necessary)?
If so, what about running the non-random test first - to look for failures when run that way (and possible anomalies caused by the data itself)? Then, after resetting (if necessary), run the random tests to reflect the real world load.
First of all, the proper term is stress test. There are quite a few solutions for website stress tests, one hosted solution I'd recommend is loadimpact. What they do is bombard your site with requests from various servers worldwide and give you an analytic report of how your site handled the stress. They have a free test, where you can get a general idea, but for more you'll have to pay a subscription fee.
These kinds of tests only test the website from the visitors point of view, for more specific information you should profile your application locally, and I don't really have anything more to add to the previous answers, I'm using Apache JMeter as well.
And, lastly, as any performance conscious web developer, you should take a look at YSlow:
YSlow analyzes web page performance by examining all the components on the page, including components dynamically created by using JavaScript. It measures the page's performance and offers suggestions for improvement.
YSlow for Firefox is integrated into the Firebug web development tool for Firefox.
More often than not, I find Javascript to be the actual bottleneck and not back end code or the database. Of course badly written queries can be a major performance penalty, but after you dealt with those, always run YSlow and follow its suggestions, it's a life saver.
Further reading:
on StackOverflow, of course!
Best Answer
If you want to test a specific server setup, you need to have a comparable setup available with which you can test.
This is probably the time to look at adding some sort of test environment to your setup.
This would allow you to retain a simple local development environment without load balancing that you can test your code on. Then, when you have a stable release candidate you can move it to the test environment, which would be load balanced. In this sort of setup, each developer would have their own development environment, but would all share a test environment which can act as a clean setup to prevent the idiosyncrasies of one workstation from creating or obscuring bugs.
If you are truly determined to have your own load balancing system, you may want to look at setting up two or three virtual machines (via Virtual PC, VirtualBox or VMWare) and running them locally. You could then configure these VMs to be load balanced amongst one another and test against them.