1.
You can use a WebDav client (e.g. http://winscp.net, https://cyberduck.io/) to delete a cartridge from a code version (make sure you have a backup of the code - you can download a zip archive of the code by going in Business Manager > Administration > Site Development > Code Deployment and clicking on the corresponding code version and then on the Download button). https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/SiteDevelopment/CartridgeDirectoryviaWebDAV.html
2.
Ideally there should be some build/deployment routine/tool/server, which should be possible to be modified to not include the corresponding cartridge. Then you would create a new code version with this build/deployment routine/tool/server and deploy only the needed cartridges to it.
https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/SiteDevelopment/Managingcodeversions.html
https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/SiteDevelopment/CodeDeployment.html
https://documentation.b2c.commercecloud.salesforce.com/DOC1/topic/com.demandware.dochelp/WhitePaper/ContinuousIntegration.html
3.
Another option would be, if this is on a sandbox instance, you can connect to it using UX Studio eclipse plugin. Then if you sync your workspace with the sandbox, you get a dialog that allows you to delete cartridges from the server, which are not present in your workspace.
P.S. As Jeff have said, you should also remove the cartridge from the cartridge path, which would basically unlink the code from the corresponding site. (The above options physically remove the code from the code version you are currently using)