The best language depends on how you are modeling the solution, as some models just work better with objects, so an OOP would be best, some would best be done in a iterative solution and so on.
So, you either pick a language or you design the solution first, in some language-agnostic solution, such as using some of the UML diagrams.
Either way will create some constraints, and then you do the other part with the constraints imposed by the first one.
You can do basically any problem with any complete language, but some languages are just a better fit, but, again, it depends on the problem solution and how you model the solution.
Any list will be very subjective based on a very important constraint, your familiarity with that language.
But, you will find LISP in robots, for example, as well as in the scripting part of Autocad.
Smalltalk has been used a great deal in the financial industries, from what I have heard.
If speed and size is important then C or C++ is probably the best choice, such as in embedded systems, like dsps.
PHP and Perl, as well as Python have found uses in scripting for sysadmin tasks, but these are also used in many other areas.
You pick a problem and several languages, and I can give a design that will work for that problem, but the solutions will be very different.
It gets more interesting now since we have languages that cross paradigms, so, Java and AOP can solve problems better than just Java by itself. F# and Scala are hybrid languages, so they are both functional and OOP. Javascript can be a functional language, even though it is prototypical by design, but you can pretend to be OOP.