code: @Override
      public INDArray rand(int[] shape, float min, float max, org.nd4j.linalg.api.rng.Random rng) {
          //ensure shapes that wind up being scalar end up with the write shape
          if (shape.length == 1 && shape[0] == 0) {
              shape = new int[] {1, 1};
          }
          return Nd4j.getDistributions().createUniform(min, max).sample(shape);
      }
docs: Generates a random matrix between min and max
  
  @param shape the number of rows of the matrix
  @param min   the minimum number
  @param max   the maximum number
  @param rng   the rng to use
  @return a random matrix of the specified shape and range