Personally I found this script to be the most effective way: https://www.hummingbirduk.com/how-to-change-skus-in-bulk-in-magento/
Steps:
1. Upload the php file they provide to an area of the website owned by the web user
2. You create a CSV that has two columns for existing and new SKU
3. Access the file to run it. If you want to run the file using a browser you need to make sure the script and csv is uploaded to a publicly accessible web folder (webroot is ideal)
4. Once this is completed make sure you remove the script or move it outside the web root to avoid anyone/bots finding it and running it many times to cause load on the server
Alternatively you could try Magmi:
I've used it on Mage 1 to great effect. It's a very powerful (also dangerous if not secured and can cause database issues if incorrectly used as it uses direct MySQL injection) tool, which allows for mass creation and updating for products as well as categories attributes and more.
The code is on Github here:
https://github.com/tagesjump/magmi-m2
According to the repo it has been updated to work with Magento 2, but is still in Beta for Mage2.1.*
Hope that helps.