text: Title: napari random sample data should have the seed set
  Body: ## 🚀 Feature
  
  I was trying to use napari's 3D balls set to illustrate something, and I found that the next run of the code returned a different set of balls. Although I can see the use of always having a random set, I think it's a bad experience for sample data and we should set the seed in the function signature ([here](https://github.com/napari/napari/blob/5535c71a787a5a17dc1ab8147e23b3bd0eff3131/napari_builtins/_ndims_balls.py#L6) and [here](https://github.com/napari/napari/blob/5535c71a787a5a17dc1ab8147e23b3bd0eff3131/napari_builtins/_ndims_balls.py#L19)), rather than choose a random seed within the function.
  
  So the proposal is:
  
  ```python
  def labeled_particles3d(shape=(256, 512, 512), seed=0):
      labels, density, points = labeled_particles(
          shape, seed=seed, return_density=True
      )
      ...
  ```
  
  (Might as well have shape in there too.)