This paper is an improvement of our previous work [1]. It provides a robust, fast and accurate solution for the inverse kinematics problem of generic serial manipulators -i.e. any number and any combination of revolute and prismatic joints. Here, we propose further enhancements by applying an evolutionary approach on the previous architecture and explore the effects of different parameters on the performance of the algorithm. The algorithm only requires the Denavit-Hartenberg (D-H) representation of the robot as input and no training or robot-dependent optimization function is needed. In order to handle singularities and to overcome the possibility of multiple paths in redundant robots, our approach relies on the computation of multiple (parallel) numerical estimations of the inverse Jacobian while it selects the current best path to the desired configuration of the end-effector using an evolutionary algorithm. But unlike other iterative methods, our method achieves submillimeter accuracy in 20 iterations in average. The algorithm was implemented in C/C++ using POSIX threads, and it can be easily expanded to use more threads and/or many-core GPUs. We demonstrate the high accuracy and real-time performance of our method by testing it with five different robots including a 7-DoF redundant robot. Results show that the evolutionary implementation of the algorithm is able to reduce the number of iterations compared to the previous method significantly, while also finding the solution within the specified margin of error.