Feat: DummyClassifier strategy that produces randomized probabilities

### Describe the workflow you want to enable

# Motivation

The `dummy` module is fantastic for testing pipelines all the way up through enterprise scales. The [strategies](https://github.com/scikit-learn/scikit-learn/blob/98ed9dc73/sklearn/dummy.py#L374) offered in the `DummyClassifier` are excellent for testing corner cases. However, the strategies offered fall short when testing pipelines that include downstream tasks that depend on moments of the predicted probabilities (e.g. gains charts).

This is because the existing strategies do not include sampling _random probabilities_.

## Proposed API:

Consider adding a new strategy with a name like `uniform-proba` or `score-random` or something similar that results in this behavior for binary classification:

```python
print(DummyClassifier(strategy="uniform-proba").fit(X, y).predict_proba(X))
"""
[[0.5651713  0.4348287 ]
 [0.36557341 0.63442659]
 [0.42386353 0.57613647]
 ...
 [0.30348692 0.69651308]
 [0.59589879 0.40410121]
 [0.32664176 0.67335824]]
"""
```

### Describe your proposed solution

## Proposed implementation

I had something like this in mind:
```python
class DummyClassifier(MultiOutputMixin, ClassifierMixin, BaseEstimator):
    ...

    def predict_proba(self, X):
        ...
        for k in range(self.n_outputs_):
            if self._strategy == "uniform-proba":
                out = rs.dirichlet([1] * n_classes_[k], size=n_samples)
                out = out.astype(np.float64)
            ...
```

Similar to the `"stratified"` strategy, this simple implementation relies on `numpy.random`, in this case the [`dirichlet`](https://numpy.org/doc/2.0/reference/random/generated/numpy.random.RandomState.dirichlet.html) distribution. By setting all the `alpha`s to 1, we are specifying that the probabilities of each class are equally distributed -- in contrast, the `"stratified"` strategy effectively samples from a dirichlet distribution with one alpha equal to 1 and the rest equal to 0.


### Describe alternatives you've considered, if relevant

_No response_

### Additional context

I am happy to make the PR. The biggest question is what the strategy string should be.

Thank you for reading 🙏.

COMMENT:
I'm not sure this is about non deterministic output. This comment from https://github.com/scikit-learn/scikit-learn/issues/31462#issuecomment-2988860644 made me think that this is about the fact that `predict_proba` always outputs `0.5` right now

> To fully test this system, we need entropy in the output of `predict_proba()`. The `uniform` strategy won't suffice, because all of the `predict_proba()` outputs are either 0 or 1, meaning there is (almost certainly) no percentiles with samples except the 100th and 50th percentile. That is, with `strategy="uniform"`, ~50% of customers are tied at "max riskiness", and the rest are tied at mid-riskiness. Our test will not be able to cover the "offer a discount..." and "send an email..." branches of logic!

```python
In [1]: from sklearn.dummy import DummyClassifier

In [2]: X = [[0.,1.], [0.2, 0.1]]

In [3]: d = DummyClassifier(strategy="uniform").fit(X, [0, 1])

In [4]: d.predict_proba(X)
Out[4]:
array([[0.5, 0.5],
       [0.5, 0.5]])
```

If you want to test something that is downstream from your classifier which performs different actions depending on the value of `predict_proba` you are a bit stuck right now. However, `predict` will change for each call.

Labels: New Feature, Needs Decision - Include Feature