Your code effectively gives you a random position within a ‘box’, who’s “min” corner is at minPosition and “max” corner is at maxPosition. There’s no handy unity function to return you a random vector within a box unfortunately, however you could of course write your own little utility function to do it. Maybe create a class somewhere called ‘RandomUtils’, with a static function in called ‘RandomVectorInBox’.
The Random.onUnitSphere, or Random.insideUnitSphere functions give you a random vector either on the surface of, or inside, a sphere of radius 1. Even if you then multiple the result by a random number you won’t end up with an even spread and they wouldn’t match the bounds of your box either. Hence I wouldn’t recommend doing something with them.
So the simple answer is no - there isn’t a nicer way of doing it! But you could write your own little utility function to do it to make your code a little cleaner.