1) There is no "best" software. There are free tools, that are oftne limited by the number of circuit elements you can simulate or by the size of the libraries that come with them. There are tools to buy with good libraries and support, but they come at a prize.
Here's a list (I do not claim completeness).
My personal favorite is LTSpice. It's free but has comparatively small libraries (apart from the Linear Technology models).
2) Simulation software is not the way to design a circuit. It's a way of verifying your design (and possibly tweaking it) without having to build a breadboard or prototype. However, it is up to you to design the circuit beforehand. You need to have a working understanding of the circuit in order to understand and judge the simulation SW's output.
Also beware of (sometimes not so) subtle effects when simulating. For example a simulator models an ideal world and does not per se take into account real world tolerances. Also a simulator is only a time discrete approximation of the circuit. THis can lead to artefacts in the simulation results. Read for example
this article.
As any Software, a simulator is GIGO (Garbage In, Garbage Out).