Rivers should be shallow water and they could be generated by picking n (random between 0 and N, should favor low numbers) tiles in every new chunk as a spring. And then either make it flow downward if you have a elevation function or find the nearest water (not a spring or river) and do a random walk favoring the direction of the water. If the walk hits another river (not itself) stop there. There could also be a probability for rivers to stop.
One problem is that this would change existing chunks as the river is created. Most of the time this would be outside the players view and more importantly on land without buildings. But in case the river hits some building it has to stop there, or maybe a bit before that.