### Description

I noticed that when I run `GET my_ilm_index/_ilm/explain`, the order of the returned JSON seems without much logic.

In my case, we have 18 underlying indices, and they are returned as
```
my_ilm_index-000010
my_ilm_index-000011
my_ilm_index-000012
my_ilm_index-000001
my_ilm_index-000006
my_ilm_index-000017
my_ilm_index-000018
my_ilm_index-000007
my_ilm_index-000008
my_ilm_index-000009
my_ilm_index-000002
my_ilm_index-000013
my_ilm_index-000014
my_ilm_index-000003
my_ilm_index-000015
my_ilm_index-000004
my_ilm_index-000016
my_ilm_index-000005
```

While of course, strictly speaking, json has no order, it's still inconvenient to just get a quick look at what's happening.

Could this get an ordering?

**Details:**
Elastic 7.16.2 in docker
Kibana 7.16.2 in docker
Request done via Kibana/Dev tools/console (on Chrome, on Windows 10)
x-pack/plugin/ilm/qa/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/ilm/ExplainLifecycleIT.java
private static final Logger logger = LogManager.getLogger(ExplainLifecycleIT.class);
    private static final String FAILED_STEP_RETRY_COUNT_FIELD = "failed_step_retry_count";
    private static final String IS_AUTO_RETRYABLE_ERROR_FIELD = "is_auto_retryable_error";
    private String policy;
    private String index;
    private String alias;
    @Before
    public void refreshIndex() {
        index = "index-" + randomAlphaOfLength(10).toLowerCase(Locale.ROOT);
        policy = "policy-" + randomAlphaOfLength(5);
        alias = "alias-" + randomAlphaOfLength(5);
    }
    public void testExplainFilters() throws Exception {
        String goodIndex = index + "-good-000001";
        String errorIndex = index + "-error";
        String nonexistantPolicyIndex = index + "-nonexistant-policy";
        String unmanagedIndex = index + "-unmanaged";
        createFullPolicy(client(), policy, TimeValue.ZERO);
        {
            
            Map<String, LifecycleAction> warmActions = new HashMap<>();
            warmActions.put(ShrinkAction.NAME, new ShrinkAction(17, null));
            Map<String, Phase> phases = new HashMap<>();