Reallocated Sector Count doesn't necessarily mean your hard drive is really failing. Here you've a rather low number, 20, which doesn't even count for 1% on your drive. (your worst value is 100 on a scale of 100, whereas the limit is 36)
But if this number keep growing quickly, you should start to worry about it.
Another thing to look at is Current_Pending_Sector and Offline_Uncorrectable, which can also announce a failing drive if these values grow.
Finally, if you buy an hard drive with the exact same capacity, you can just connect the 2 to another computer running GNU/Linux, identify the disk identifier in /dev/ for both disk then do :
dd if=/dev/<old_disk> of=/dev/<new_disk> bs=16M
Double check you are indicating the right disk as
<new_disk> since its content will be completely erased !
If you want a progress bar, install
pv package and run the following :
pv -tpreb /dev/<old_disk> | dd of=/dev/<new_disk> bs=16M