<p>By definition algorithms are independent from the medium they run on. E.g. I use Excel tables to play with data structures and to do some move/shuffling/marking experiments before implementing an algorithm in a programming language. </p>

<p>What tools and techniques do you use to design and simulate the function of an algorithm? How do you use drawing programs? A special specification language?</p>

I guess it depends on the complexity of the algorithm.
Quite often I'll actually draw a quick sketch of a flowchart on some paper.  There are some excellent diagramming tools available, but I still haven't found one that is as quick as a good old fashioned sketch on a piece of paper.
Other than that, I often end up throwing together a really 'quick and dirty' mock up of the algorithm in a VB.NET windows forms or console application.  With some of the more recent features like LINQ-to-SQL, you can even put together prototypes that rely on database access in a very short space of time.