One simple but not very real way of getting random spread of bullets is to define a deviation distance (or DD), like 5.0.
Then get the actual target location in 3d space:
now for each part of the location (x,y,z) minus your DD and then add double the DD multiplied by a random float. The result will be the location ± 5.0.
You can then use get vector to that point and you can then align your gun to that point.
It’s not very realistic because the result is a box, not a sphere, but it is pretty quick.
If you want the recoil to increase after each shot you can increase the DD. You can also base the DD on distance to target, player movement, stance and a whole host of other factors to get a nice fake realistic system.