### Description

Min/Max aggregations do not require any scaling for the random_sampler results. Additionally, if the min/max an be determined via the pointReader (i.e. not by individual doc values), we should use that as it means that sampler doesn't need to supply documents to the min/max agg, potentially speeding things up significantly and improving accuracy.

related to: https://github.com/elastic/elasticsearch/issues/84353
server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/random/RandomSamplerAggregator.java
private final CheckedSupplier<Weight, IOException> weightSupplier;
    RandomSamplerAggregator(
        String name,
        int seed,
        double probability,
        CheckedSupplier<Weight, IOException> weightSupplier,
        AggregatorFactories factories,
        AggregationContext context,
        Aggregator parent,
        CardinalityUpperBound cardinalityUpperBound,
        Map<String, Object> metadata
    ) throws IOException {
        super(name, factories, context, parent, cardinalityUpperBound, metadata);
        this.seed = seed;
        this.probability = probability;
        if (this.subAggregators().length == 0) {
            throw new IllegalArgumentException(
                RandomSamplerAggregationBuilder.NAME + " aggregation [" + name + "] must have sub aggregations configured"
            );
        }
        this.weightSupplier = weightSupplier;
    }
    @Override
    public InternalAggregation[] buildAggregations(long[] owningBucketOrds) throws IOException {
        return buildAggregationsForSingleBucket(
            owningBucketOrds,
            (owningBucketOrd, subAggregationResults) -> new InternalRandomSampler(
                name,
                bucketDocCount(owningBucketOrd),
                seed,