It’s not really good practice to do this. You can, as you said, use a redirect to pass control of your application to another Controller method altogether. However, if you don’t want to do that, you can factor the logic that you need into a Model method which can then be shared from any controller. Remember that all business logic should really be in your models anyway. Controllers simply respond to and field incoming requests (sort of like a traffic cop).
If your logic isn’t business-related, you can always factor your method into a Component which can then be shared with any other Controller in your app.
The “Fat Model” Concept