Hi.
Both can work, but personally i would prefer the gun to handle it.
When you Create the bullet store it in a variable.
Then parent it to the tip of the gun
Then set rotation and position to 0,0,0
The bullet should point forward from the gun, if not adjust the bullet prefab mesh/sprite.
is the game 2d or 3d?
You can use for example a random float (or 2 random floats when 3D) and use those to set the rotation.
Then for 2D use 'Set Forward Velocity' and for 3d use Set Velocity and set Space to Self.
Btw for bullets its best to use pooling instead of create/destroy.