So, the reason that you're getting that first empty column is because you're saying "V is one of the separators, so keep whatever's before it". I'm sure there's a way around that, but I don't happen to know it (so we'll have to wait for someone else on that).
Otherwise, you can only pass a single string (in the form of a regular expression, in this case — see SO thread here) to sep, so you can use the OR operator, |. So, here I'm saying separate on either "V" or "-V".
library(tidyverse)
testdat <- tibble(VrangeOrig = c("V0497-V0508", "V0868-V0875", "V1010-V1024"))
testdat %>%
separate(VrangeOrig, into = c("blank", "Voriglo", "Vorighi"),
sep = "V|\\-V", remove = F, convert = T) %>%
select(-blank)
#> # A tibble: 3 x 3
#> VrangeOrig Voriglo Vorighi
#> <chr> <int> <int>
#> 1 V0497-V0508 497 508
#> 2 V0868-V0875 868 875
#> 3 V1010-V1024 1010 1024
Created on 2018-12-04 by the reprex package (v0.2.1.9000)