How do I apply a velocity shift to a wavelength array with uniform logarithmic spacing?
If you have bins of equal log wavelength increment then a velocity shift corresponds directly to a pixel shift. That is the reason for binning in equal log wavelength increments.

See  this question for a short proof. All you need to do is work out what each pixel corresponds to in terms of a velocity.
$$\Delta V  = c\, \Delta \log \lambda$$