An array exponent in bash starts at 0. When you say
for (( _i=1; _i<=2259; _i++ ))
you ignore the first entry and go past the end, after which
sed -i "s/${_alIPs[$_i]}/${_fIPs[$_i]}/g" access.log
expands to
sed -i "s//something/g" access.log
// s , , .
for (( _i=0; _i<2259; _i++ ))
... , , , .
:
sed -i -f <(paste access.log.IPs randomIPs.txt | awk '{ print "s/" $1 "/" $2 "/g" }') access.log
( , )