Can vertex indices be transferred between identical meshes? I want to transfer the vertex indices from one mesh, to another mesh with identical topology, shape, size ect. As an example, I created two identical subdivided cubes. The only difference is that they do not have the same vertex indices.
To demonstrate the problem I am having, I sculpted some smiley faces on to the cubes as shape keys.
My goal is to have both shape keys applied to one cube at the same time. However, when I try to copy the shape key from the red cube to the green one, it doesn't work. I have tried Transfer Shape Key (left), which doesn't apply correctly. I have also tried Join as Shapes (right), which heavily distorts the cube.
Is there a way I can change the vertex indices of the cube red cube to match the cube on the right?
I may be missunderstanding what you are trying to do here, wouldn't just making a copy of the Green cube in object mode be the easiest way to insure that both objects have identical vertex indices?

I thought it would be possible to Transfer Mesh Data from Green to Red cube. Object menu > Relations > Transform Mesh Data but I couldn't get it to work.

Tried with the Data Transfer modifier but again with no success.

That left the long way of transferring vertex indices :
Link the data of the Red to the Green and then remove the link.



In Object mode first select Red object then select the Green one. Object menu > Make Links > Object Data.


The Red object now has the same vertex order as the Green object: 


......... but also using all other data from the Green object. 
The Red can be unlinked in the Object Data Properties menu:


There must be a more elegant way of doing this  :)

there you go ... an Addon, see comment above.  Thankyou  @R-800  :)