Pagination Adding Numbers in Strange Fashion

What you are seeing, I believe, is a result of paginate_links using three blocks of numbering– first, middle, and last. If you had enough pages you’d get, for example, when browsing page 50 …

1 2 3 … 49 50 51 … 98 99 100

If you imagine the “middle” numbers overlapping the “first” numbers you’d get 3 or 4 or five numbers bunched up. You can play with the end_size and mid_size parameters and try to get something you like better, or use 'type' => 'array' and write your own display function to convert the resulting array into actual pagination links.