As YoungFrog pointed out, it can be easier to just generate a new buffer (which will get automatically get a number appended to it when it exists):
(defun new-buffer ()
(interactive)
(switch-to-buffer (generate-new-buffer "buffer"))
)
(global-set-key (kbd "\s-t") 'new-buffer)