Have 'Random Crop' option for truncation_side for Tokenizer 
### Feature request

Currently for the tokenizer, there's only two options for truncation_side, 'right' and 'left'. 

I would like an option for 'random_crop' so that it takes a sequence of max length anywhere from the sequence. 



### Motivation

As a way for data augmentation, some people might want a random crop rather than to consistently get a crop from one side or another. 

This will vary the inputs into the model from the same data source. 

### Your contribution

I'm not quite sure. I don't know Rust which I believe is what the tokenizer is based on. 
@SantoshGuptaML Where would you want this to happen?

One option you have is to write a custom slow (non-fast) tokenizer. You can follow this example where the tokenizer is able to make random variations in output tokens: https://github.com/huggingface/transformers/pull/11149/files
afaik rust is used for fast tokenizers, but the slow tokenizers are written in python.

Another option is you can subclass the DataCollator. This allows you to augment samples during training using the Trainer API instead of creating an augmented dataset ahead of time. Here's a working (albeit unoptimized) example of a custom data collator that does what you want.
```
from transformers import DefaultDataCollator
from dataclasses import dataclass
import random


@dataclass
class RandomCropDataCollator(DataCollatorWithPadding):
    random_truncation_token_length = 10

    def __call__(self, features):
        for f in features:
            original_token_length = len(f['input_ids'])
            start_truncation = random.randint(0, original_token_length-self.random_truncation_token_length)
            f['input_ids'] = f['input_ids'][:start_truncation] + f['input_ids'][start_truncation+self.random_truncation_token_length:]
            f['attention_mask'] = f['attention_mask'][:start_truncation] + f['attention_mask'][start_truncation+self.random_truncation_token_length:]
            end_shape = len(f['input_ids'])
            #print(original_token_length, "-------->", end_shape)
        return super().__call__(features)

```
`data_collator = RandomCropDataCollator(tokenizer)`
[colab](https://colab.research.google.com/drive/1HRTDjuKw1TRTRlIT08MhZOXCbViGlpht?usp=sharing)<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.