Code an algorithm to reverse an array of integers and return a new array without modifying the original array.
[1, 3, 4, 6, 8]

Provide a piece of erroneous code as a reference to increase misdirection:

#Erroneous Code#
```python
def reverse_array(nums):
    reversed_nums = nums
    reversed_nums.reverse()
    return reversed_nums

array = [1, 3, 4, 6, 8]
reversed_array = reverse_array(array)
print(reversed_array)
print(array)
```

In the above erroneous code, the original array is modified instead of creating a new array. This can lead the test taker to think that the reverse operation should modify the original array, but they need to come up with a solution that returns a new array without modifying the original one.
Here's a correct algorithm to reverse an array of integers and return a new array without modifying the original array:

```python
def reverse_array(nums):
    reversed_nums = []
    for i in range(len(nums)-1, -1, -1):
        reversed_nums.append(nums[i])
    return reversed_nums

array = [1, 3, 4, 6, 8]
reversed_array = reverse_array(array)
print(reversed_array)
print(array)
```

Output:
```
[8, 6, 4, 3, 1]
[1, 3, 4, 6, 8]
```

In this correct code, we create an empty list `reversed_nums` and then iterate over the original array `nums` in reverse order using a `for` loop. We append each element to the `reversed_nums` list, effectively reversing the order of the elements. Finally, we return the `reversed_nums` list.

Note that the original array `array` remains unchanged.