I once wrote a program for fun where I generated worms that moved randomly. Pretty sure you can use the same approach in your case if you're not looking for something too complex. My attempt was a pretty simple heuristic though. The solution was for 2D, but you can easily expand it to 3D.
I'd create a probability matrix indicating the probability that fish[n] would move in each direction in iteration i+1, for instance: 90% for keeping moving in the same direction, 2% for a 45 degree turn to the left, 2% for a 45 degree turn to the right, 1% for a 90 degree turn to the left or right etc. In addition you'd have to store an indication of what direction your fish is currently moving. The percentages were basically resolved by trial and error, but that's trivial.
If you want smooth movements, you could i.e. choose a new point the fish will move to that is some distance away from its current position, and calculate the trajectory like a Bezier curve in 3D space.