Вроде получилось с `Rc`, и я согласен что лучше. [Старый пример с `random: Option<&'a RefCell>`](https://play.rust-lang.org/?gist=a351ccacc5ec23bbefd6445302e21e21&version=stable&mode=debug&edition=2015) [Новый пример с `random: Option>>`](https://play.rust-lang.org/?gist=188a0512c0a2b99ea078eae6804e651e&version=stable&mode=debug&edition=2015) Кстати, как лучше? ```rust match self.random.clone() { None => Move::Stop, Some(r) => moves[r.borrow_mut().gen_range(0, moves.len())], } ``` или ```rust match self.random { None => Move::Stop, Some(ref mut r) => moves[r.borrow_mut().gen_range(0, moves.len())], } ``` второй, потому что лишний раз счётчик не увеличивает