It basically depends on the runtime you want to offer for optimization. Due to randomization, every solution can be theoretically found within infinite time. However, the challenge becomes to perform an efficient search space exploration. Genetic algorithms aim to induce some sort of a "systematic randomization" by rather improving good individuals. So depending on your initialization, the required time for finding the global optimum each time might differ significantly. Accordingly, if you have a very limited amount of time and a highly complex non-convex search space, the answer to your question would be "no". However, it is very likely that an approximate solution close to the global optimum will be found at each run.
No...nature based algorithms only produce near to optimum solutions. Due to their random selection behaviour solutions produced may vary. Also optimality may vary depending upon the iteratiins and parameters set .