Use the .clone() method on your List. It will return a shallow copy, meaning that it will contain pointers to the same objects, so you won’t have to copy the list. Then just use Collections.
Ergo,
Collections.reverse(list.clone());
If you are using a List and don’t have access to clone() you can use subList():
List<?> shallowCopy = list.subList(0, list.size());
Collections.reverse(shallowCopy);