If order doesn't matter, swap and truncate:
func fastRemove(s []int, i int) []int {
s[i] = s[len(s)-1]
return s[:len(s)-1]
}
This is O() versus O(n) for the ordered version. The last element replaces the removed one, then we shrink the slice.