If you are trying to randomize your original points, you may want to take a look at the Point Randomizer script rather than using the buffer method.
It is possible (with a Spatial or 3D Analyst extensions, or an Advanced license) to use the Create Random Points tool and constrain the points to fall on lines. You could take your buffers and intersect them with the roads to get the candidates. This potentially leads to a similar issue you have with dissolving the roads in your current workflow, because your method of dissolve is creating a single feature for all the roads. Each feature gets the specified number of points so you'd need all roads within a buffer to be one feature, but each buffer's roads to be separate features.
You should be able to get this by Intersecting the roads with the buffers, and then dissolving on buffer FID (making sure to allow multi-part features). If your buffers at all overlap you'll get some 'extra' features. The roads for the parts of each buffer that aren't overlapping will be two features, and then you'll have two duplicate features for all the roads within an area of overlap. However the dissolve on buffer FID should take care of that so you get one road feature per buffer.
Another option, if you already have the points and just want them on the lines, is to look at just snapping them to the nearest line. Answers at Snapping points to lines in ArcGIS Desktop and automate using VBA? cover that (particularly the first one using the Near tool, or alternatively the Generate Near Table tool). The Snap tool may also work (requires Standard or Advanced license and be sure to make a copy of the random points because the tool directly modifies the data, it does not create an output layer).