I made a little explicit Runge-Kutta 4th order solver a few days ago, but when testing it against various 1st and 2nd order ODEs chosen at random (for example $d^{2}y/dt^{2} = -y \sin(y)$, $d^{2}y/dt^{2} = -yt$ or $d^{2}y/dt^{2} = -y + t^{2}$) it seemed like most were stiff ODEs (unless the algorithm I'm using is incorrect), by comparing my output to that of Mathematica's NDSolve, and hence rendered my RK4 solver to be fairly useless. As such, I've decided to try and find a numerical solver that I can create, that is robust and can solve stiff and non-stiff ODEs. Does such an algorithm exist, or is it a case of the more robust a solver the more abstruse its algorithm becomes. Even better, is there such a thing as a universal solver that is able to solve any ODE you throw at it?
EDIT: Here's an example of my RK4 solver output for $d^{2}y/dt^{2} = -y \sin(y)$ using a step size of $h=0.005$:

And here's what I get from NDSolve:

I've been able to reproduce both your pictures with
NDSolve. The second, smoothly-looking one is the solution of $y''(t)=-y(t)\sin(y(t))$ with initial conditions $y(0)=0$ and $y'(0)=50$.I get the first one if I plot the derivative of the solution:
So, looks like you're taking wrong output from your correct solver. As it's a Runge-Kutta method, you're most likely splitting the equation into system of two equations, one for $y'(t)$ and another for $y(t)$. You're taking the former as the solution to the original equation, while you have to take the latter.