How can I render shortcode so that its not cached by Caching plugins?

I don’t think that there is a way to do this. All that shortcode does is generating some HTML code and putting it as content.

But… there is a workaround you can use. Your shortcode can generate only a placeholder for its content and then you can use AJAX to populate it with real content. It’s a pretty common practice to deal with cache in WP – for example WooCommerce uses exactly this method for its cart.

PS. If you’re using W3TC you can set a list of pages that shouldn’t be served from cache.