### Elasticsearch Version

8.1.0-SNAPSHOT (but also affects 7.x releases)

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

OSX

### Problem Description

While the docs state that `RANDOM(null) = null` that's not always the case.

### Steps to Reproduce

```
GET _sql?format=txt
{
  "query": """
  SELECT random(n), n FROM longs
  """
}
```

yields 

```
    random(n)     |       n       
------------------+---------------
0.7308781907032909|1              
0.7311469360199058|2              
0.3860252809814635|null           
```

Expected would be `null` for the last row.

### Logs (if relevant)

_No response_
x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/expression/function/scalar/math/MathProcessor.java
return NAME;
    }
    @Override
    public Object process(Object input) {
        if (input != null && (input instanceof Number) == false) {
            throw new SqlIllegalArgumentException("A number is required; received [{}]", input);
        }
        return processor.apply(input);
    }
    MathOperation processor() {
        return processor;
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null || obj.getClass() != getClass()) {
            return false;
        }
        MathProcessor other = (MathProcessor) obj;
        return processor == other.processor;
    }
    @Override
    public int hashCode() {
        return processor.hashCode();
    }
    @Override
    public String toString() {
        return processor.toString();
    }
}